如何将 Unix 纪元时间戳与 SQL 中的日期进行比较?

问题描述

如何将 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