我正在尝试转换日期字段' createdate'到UTC时间,但问题是-04:00。我尝试了很多东西并没有成功。我正在研究Oracle。有任何想法吗?谢谢。
答案 0 :(得分:0)
这应该这样做:
cast(createdate as timestamp with time zone) at time zone 'UTC'
这会将createdate
转换为您的当前时区(您的客户通过SESSIONTIMEZONE
定义的时区)的时间戳。然后将其转换为UTC。
答案 1 :(得分:0)
如果您有DATE
或TIMESTAMP
值,则无法进行此操作,因为这些数据类型没有任何时区信息,因此无法转换为任何其他时区 - 除非您将该值视为"当地时区"。
有几种解决方案:
createdate at time zone 'UTC'
SYS_EXTRACT_UTC(createdate)
FROM_TZ(createdate, 'UTC')
结果类型不同,例如FROM_TZ
返回TIMESTAMP WITH TIME ZONE
个值,而SYS_EXTRACT_UTC
返回TIMESTAMP
值。