问题描述
如何将 Unix 纪元时间戳与 sql 中的日期进行比较?
例如,我有一个 DATE data_type 列,其中包含一个条目 14-DEC-20(ig to_date('14-DEC-20','DD-MON- RR')) 和与此等效的纪元日期。我想检查日期是否与纪元等效,如果不是,则在日期中设置等效的纪元日期。
我尝试过 from_unixtime 或 CAST,但没有奏效。
解决方法
您可以使用以下方法将纪元时间转换为 Oracle 中的日期:
date '1970-01-01' + <your epoch value> * interval '1' second
然后您可以将其用作比较:
where datecol = date '1970-01-01' + <your epoch value> * interval '1' second
注意:这是在第二级别进行比较。如果您希望在 day 级别进行调整,则需要进行调整。您可以为此使用 date
:
where datecol = date '1970-01-01' + floor(<your epoch value> / (24 * 60 * 60)) * interval '1' day