java - H2 数据库 - CSVREAD - 将时间戳从 csv 读取到时间戳列

标签 java timestamp h2

我在我的 Java 应用程序中使用 H2 DB。我想将 .csv 文件加载到表中。我的 .csv 文件包含格式为 07/16/2011 02:43:43 的时间戳,但 H2 DB 的默认时间戳格式为 2005-12-31 23:59:59

因此,当我使用 CSVREAD 将该 .csv 文件加载到数据库时,出现以下异常:

org.h2.jdbc.JdbcSQLException: Cannot parse "TIMESTAMP" constant "07/16/2011 02:43:43"; SQL statement:
-- row #2 ('CIRCLE', 'MSISDN', 'PORT_IN_DATE', 'OPERATOR', 'PRODUCT_TYPE', 'PORT_ID') [22007-163]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
at org.h2.message.DbException.get(DbException.java:158)
at org.h2.value.ValueTimestamp.parse(ValueTimestamp.java:87)
at org.h2.value.Value.convertTo(Value.java:819)
at org.h2.table.Column.convert(Column.java:155)
at org.h2.command.dml.Insert.addRow(Insert.java:153)
at org.h2.command.dml.Select.queryFlat(Select.java:524)

最佳答案

select convert(parseDateTime(DOB,'yyyy/MM/dd hh:mm:ss'),timestamp) as NEWNAME
from CSVREAD('file.csv')

其中 file.csv 有一个标记为 DOB 的列

并插入到您的表中:

insert into YOURTABLE 
    (
     select convert(parseDateTime(DOB,'yyyy/MM/dd hh:mm:ss'), timestamp)
     from CSVREAD('file.csv')
    )

关于java - H2 数据库 - CSVREAD - 将时间戳从 csv 读取到时间戳列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8761452/

相关文章:

JavaFX getResource 在浏览器中运行时返回 null

sql - 这个的sql查询是什么?

console - h2 控制台冰川缓慢

mysql - 将 WSO2API 管理器从 H2 迁移到 Mysql

java - 使用 Spring 获取 RESTful Web 服务来理解 JSON 字符串

java、安卓和蓝牙

java - 有人能用java中的数学为我指明正确的方向吗?

nhibernate - NHibernate 中的 DateTime 精度和 NHibernate SchemeExport 中对 DateTime2 的支持

java - 将时间戳从数据库格式化为 Java

java - 在时间戳中的任何位置查找日期