我需要将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?
- 所以我的问题是**有没有办法以
1条答案
按热度按时间k5hmc34c1#
如果
col1
的数据类型为timestamp
,那么它就是col1 - current timezone
。