oracle中的日期转换

时间:2011-12-09 09:30:33

标签: sql oracle date format

我有这部分查询正在转换create_date的值,因此可以将其与系统日期进行比较。

date_time的数据类型为数字。

NEW_TIME(TO_DATE('1970/01/01 00:00:00','yyyy/mm/dd hh24:mi:ss') + (date_time/86400),
        'GMT','CDT')

有人可以向我解释正在发生的转换吗? 为什么使用以下值,例如1970/01/01 00:00:0086400

谢谢。

3 个答案:

答案 0 :(得分:2)

日期'1970/01/01 00:00:00'是unix“epoch”的开始日期。许多系统从此时起计算秒数。编号86400是一天中的秒数。 86400 = 60秒* 60分钟* 24小时

答案 1 :(得分:0)

date_time中创建数值的任何人或其他人创建了自1970年1月1日00:00"以来的#34;秒。

因此,这些值基于1970/01/01。

您在日期中添加1,您需要添加1天。因此,date_time值除以一天中的秒数。 (60s * 60m * 24h = 86400s)

当您将Date_Time / 86400天添加到基准日期时,您将获得该值代表的日期时间

答案 2 :(得分:0)

TO_DATE('1970/01/01 00:00:00','yyyy/mm/dd hh24:mi:ss')

您列中的数据可能是字符串格式 1970/01/01 00:00:00 ,而to_date,您告诉Oracle将其转换为日期格式为{{ 1}}它仍然显示为 1970/01/01 00:00:00 ,但它现在有一个 DATE 数据类型。有关Oracle DATE数据类型look here.

的更多信息

86400就是秒的一天:yyyy/mm/dd hh24:mi:ss

您可以使用它来添加新的一天!