在Oracle中将日期字段转换为UTC

时间:2015-11-06 19:58:47

标签: oracle datetime utc

我正在尝试转换日期字段' createdate'到UTC时间,但问题是-04:00。我尝试了很多东西并没有成功。我正在研究Oracle。有任何想法吗?谢谢。

2 个答案:

答案 0 :(得分:0)

这应该这样做:

cast(createdate as timestamp with time zone) at time zone 'UTC'

这会将createdate转换为您的当前时区(您的客户通过SESSIONTIMEZONE定义的时区)的时间戳。然后将其转换为UTC。

答案 1 :(得分:0)

如果您有DATETIMESTAMP值,则无法进行此操作,因为这些数据类型没有任何时区信息,因此无法转换为任何其他时区 - 除非您将该值视为"当地时区"。

有几种解决方案:

  • createdate at time zone 'UTC'
  • SYS_EXTRACT_UTC(createdate)
  • FROM_TZ(createdate, 'UTC')

结果类型不同,例如FROM_TZ返回TIMESTAMP WITH TIME ZONE个值,而SYS_EXTRACT_UTC返回TIMESTAMP值。