Sql 将数字转换为日期

Sql 将数字转换为日期,sql,oracle,Sql,Oracle,我的Oracle数据库中有一个表示日期的数字字段 我不太熟悉Oracle命令 我想知道这里是否有人能提供一些指导 谢谢 示例:1435755908=7/1/2015 9:05这是一个Unix时间戳,即自1970年1月以来的秒数,请尝试以下公式: timestamp '1970-01-01 00:00:00' + 1435755908/86400 由于似乎存在时区差异: select date '1970-01-01' + 1435755908/86400 as converted from d

我的Oracle数据库中有一个表示日期的数字字段

我不太熟悉Oracle命令

我想知道这里是否有人能提供一些指导

谢谢


示例:1435755908=7/1/2015 9:05这是一个Unix时间戳,即自1970年1月以来的秒数,请尝试以下公式:

timestamp '1970-01-01 00:00:00' + 1435755908/86400

由于似乎存在时区差异:

select date '1970-01-01' + 1435755908/86400 as converted from dual;

CONVERTED                              
----------------------------------------
2015-07-01 13:05:08                     
你似乎需要做一些时区操作。大纪元时间是UTC,因此您可以使用
from_tz
来声明,然后在时区
来获得美国/东海岸的等效时间:

select from_tz(cast(date '1970-01-01' + 1435755908/86400 as timestamp), 'UTC')
  at time zone 'America/New_York' as converted from dual;

CONVERTED                              
----------------------------------------
2015-07-01 09:05:08.000 AMERICA/NEW_YORK
这是带有时区的时间戳。如果您希望将其作为普通日期,请将其转换为:

select cast(from_tz(cast(date '1970-01-01' + 1435755908/86400 as timestamp), 'UTC')
  at time zone 'America/New_York' as date) as converted from dual;

CONVERTED                              
----------------------------------------
2015-07-01 09:05:08                     

可能是一个大纪元时间的复制,翻译为2015-07-01 13:05:08,所以我猜你也必须考虑时区;该值表示EST时间?正确这是EST时间感谢快速重播。我没有from_tz转换器选项。@angus-它是一个内置函数;不确定它是何时推出的,但至少是10g。您使用的是什么Oracle版本?这是我得到的输出:“01-JUL-2015 13:05:08”