如何将 2012-04-12 00:00:00 转换为 DB2 中的 unix 时间戳。sql 中是否有任何可用的内置函数
谢谢你。
使用DAYS
andMIDNIGHT_SECONDS
比 更精确TIMESTAMPDIFF
:
SELECT
86400*(DAYS(CURRENT TIMESTAMP - CURRENT TIMEZONE)-DAYS('1970-01-01'))
+ MIDNIGHT_SECONDS(CURRENT TIMESTAMP - CURRENT TIMEZONE)
"UNIX_TIMESTAMP"
FROM SYSIBM.SYSDUMMY1
Unix timestamp
我假设您的意思是自 1970-01-01 00:00:00 UTC 以来的秒数(或其他) 。
DB2(从 V6R1 开始)没有内置的功能。
您还面临以下问题:
CURRENT_TIMESTAMP
写入都基于请求系统认为的时间,而不是主机。TIMESTAMPDIFF
函数返回一个估计值,而不是一个精确值。在足够的差异下,您可能可以存活数年/数月的时间,但天数不太可能减少它。您最好的选择是开始使用DAYS
(返回自 0001-01-01 以来的天数)。请记住,您最好在 UTC 中执行所有操作,因为它不会考虑 DST。