gpt4 book ai didi

timestamp - 将 Unix 纪元时间转换为 Apache Derby 中的日期

转载 作者:行者123 更新时间:2023-12-02 09:45:47 26 4
gpt4 key购买 nike

Apache Derby 中是否有一个函数可以将 unix 纪元时间值(例如 1453974057 )转换为日期?

最佳答案

如果您有 从 Unix 纪元开始,请使用:

select
{fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057, TIMESTAMP('1970-01-01-00.00.00.000000')) } as DT
from sysibm.SYSDUMMY1

只需将“sysibm.SYSDUMMY1”替换为您的原始表,并将 1453974057 替换为您的值。

在处理毫秒时,它会变得有点复杂,因为您不能直接使用 TIMESTAMPADD(您将获得 SQL 状态 22003:结果值超出数据类型 INTEGER 的范围。)

如果您有 毫秒 从 Unix 纪元开始,请使用:
select
--the following block converts milliseconds since linux epoch to a timestamp
{ fn TIMESTAMPADD(
SQL_TSI_FRAC_SECOND,
(
--add the millisecond component
1453974057235 - { fn TIMESTAMPDIFF(
SQL_TSI_SECOND,
TIMESTAMP('1970-01-01-00.00.00.000000'),
{ fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057235/1000, TIMESTAMP('1970-01-01-00.00.00.000000')) }
)} * 1000
) * 1000000,
{ fn TIMESTAMPADD(SQL_TSI_SECOND, 1453974057235/1000, TIMESTAMP('1970-01-01-00.00.00.000000')) }
)} as FINAL_DT
from SYSIBM.SYSDUMMY1

只需用您的值替换 1453974057235 的 3 个实例。

关于timestamp - 将 Unix 纪元时间转换为 Apache Derby 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35058275/

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