在DB2中将日期转换为UTC

qncylg1j  于 2023-01-26  发布在  DB2
关注(0)|答案(1)|浏览(287)

我需要将DB2数据库中的日期转换为UTC值
通常TO_UTC_TIMESTAMP函数可以做到这一点,但这种方法似乎只有在源时区已知的情况下才有效。我面临的问题是我需要一个SQL脚本,它可以将数据库中的当前时区的现有日期转换为UTC,* 而不必硬编码当前时区 *。

    • 我已经尝试过的**是以下SQL:
-- assuming there is a table called 'test' with a column 'col1' of the type timestamp
SELECT col1 AS my_time_zone, TO_UTC_TIMESTAMP(col1, CURRENT TIMEZONE) AS utc FROM test;

这并不转换日期值,因为CURRENT TIMEZONE返回一个整数值(在我的例子中,UTC +01:00为10000),这个整数值似乎被转换为VARCHAR,TO_UTC_TIMESTAMP函数无法解释它。
DB2 documentation
时区表达式
[...]如果表达式不是VARCHAR,则在计算函数之前将其转换为VARCHAR。
[...]如果timezone-expression返回的值不是IANA时区数据库中的时区,则将返回expression的值而不进行调整。

    • 所以我的问题是**有没有办法以TO_UTC_TIMESTAMP函数可以使用的格式从DB2数据库获取当前时区,或者有没有其他办法将日期从当前时区转换为UTC?
k5hmc34c

k5hmc34c1#

如果col1的数据类型为timestamp,那么它就是col1 - current timezone

相关问题