我有这部分查询正在转换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:00
和86400
?
谢谢。
答案 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
您可以使用它来添加新的一天!