我正在将代码从 Sybase 更改为 Oracle。 我在将以下查询转换为 oracle 时遇到问题。
Select Custodian_addr,convert(datetime,dateadd(ss,CreateDT,"01/01/1970")
这里的 CreateDT
是列名,例如它的值为 1015015173
日期转换的结果(对于本例)是 2002 年 3 月 1 日晚上 8:39 GMT
我研究并找到了导致错误的 oracle 替代方案
Select Custodian_addr,to_char(CreateDT,"SS")
我在 Oracle 中收到查询错误。我无法确定问题所在。由于我在 Perl 中执行此操作 ["
] 必须转义或者可能是什么问题?请给我建议一个解决方案
最佳答案
SELECT 'some address' as custodian_addr,
date '1970-01-01' + 1015015173/86400 as create_dt
from dual
/
CUSTODIAN_AD CREATE_DT
------------ -------------------
some address 2002-03-01 20:39:33
Oracle 日期算法非常简单——将日期加 1 会增加 1 天。因此,由于该数字是秒,因此将其除以 86400 (60*60*24) 将该数字转换为天数(及其分数)。
关于oracle - Oracle 中的 Sybase 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5476729/