我们的iSeries (又名AS400,又名i5,又名SystemI)在本地时间运行,但是我们有一个应用程序,它使用UTC (用Java编写,通过JDBC连接到iSeries DB)。
如何通过该系统上的SQL生成UTC时间戳?
发布于 2014-05-27 12:26:11
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这样的东西也能工作。https://stackoverflow.com/questions/23889405
复制相似问题