我们的iSeries(又名AS400,又名i5,又名SystemI)在本地运行,但是我们有一个应用程序,它使用UTC(用Java编写,通过JDBC连接到iSeries DB)。
如何在该系统上通过SQL生成UTC时间戳?
DB2 / 400(喜欢在细节上与其他DB2风格有所不同)具有一个名为的特殊寄存器CURRENT TIMEZONE
。它包含一个数值,可以从时间戳或时间值中减去该数值。
在一个示例查询中:
SELECT
CURRENT TIMESTAMP AS local,
CURRENT TIMEZONE AS offset,
CURRENT TIMESTAMP - CURRENT TIMEZONE AS utc
FROM SYSIBM.SYSDUMMY1
给您类似的东西:
+----------------------------+--------+----------------------------+
| LOCAL | OFFSET | UTC |
+----------------------------+--------+----------------------------+
| 2014-05-27 14:09:19.127339 | 20.000 | 2014-05-27 12:09:19.127339 |
+----------------------------+--------+----------------------------+
笔记:
SYSIBM.SYSDUMMY1
是IBM提供的特殊表,其唯一目的是使一行恰好具有一列。NOW() - CURRENT TIMEZONE
也可以CURRENT TIME - CURRENT TIMEZONE
正常工作。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句