gpt4 book ai didi

h2 - H2数据库字符串要加时间戳

转载 作者:行者123 更新时间:2023-12-03 10:13:40 24 4
gpt4 key购买 nike

在H2数据库中插入时间戳

您好,我必须插入“17-09-2012 18:47:52.69”之类的数据。函数PARSEDATETIME减少毫秒。
查询示例:

CREATE TABLE TEST(ID NUMBER(19) not null,
DATE TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

INSERT INTO TEST (ID, DATE) VALUES(1,
parsedatetime('17-09-2012 18:47:52.69', 'dd-MM-yyyy hh:mm:ss.SS'))

SELECT之后,我看到毫秒为零。

什么是解决方案?

最佳答案

根据我的测试,对于H2版本1.3.170,毫秒实际上不是零,而是069:

select * from test;
ID DATE
1 2012-09-17 18:47:52.069

如果运行,也会发生相同的情况:
call parsedatetime('17-09-2012 18:47:52.69', 'dd-MM-yyyy hh:mm:ss.SS');

如果添加零,那么它将起作用:
call parsedatetime('17-09-2012 18:47:52.690', 'dd-MM-yyyy hh:mm:ss.SS');

H2内部使用 java.text.SimpleDateFormat,因此它必须具有相同的限制。如果在 SimpleDateFormat中找到了解决方案,则可以在H2的 parsedatetime函数中使用它。

一种替代方法是使用JDBC中定义的ISO时间戳格式。这应该适用于所有符合JDBC标准的数据库:
INSERT INTO TEST VALUES(2, {ts '2012-09-17 18:47:52.69'});

关于h2 - H2数据库字符串要加时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14138532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com