如何将 Unix 纪元时间戳与 SQL 中的 DATE 进行比较?
How can I compare a Unix epoch timestamp with a DATE in SQL?
如何将 Unix 纪元时间戳与 SQL 中的日期进行比较?
例如,我有一个 DATE data_type 列,其中有一个条目 14-DEC-20 (i.g to_date('14-DEC-20','DD-MON-RR')) 和一个与此等效的纪元日期。我想检查 DATE 是否等于纪元,如果不是则在日期中设置等效的纪元日期。
我试过 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
注意:这是在秒级别进行比较。如果你想在天级别,你需要调整。您可以为此使用 date
:
where datecol = date '1970-01-01' + floor(<your epoch value> / (24 * 60 * 60)) * interval '1' day
如何将 Unix 纪元时间戳与 SQL 中的日期进行比较?
例如,我有一个 DATE data_type 列,其中有一个条目 14-DEC-20 (i.g to_date('14-DEC-20','DD-MON-RR')) 和一个与此等效的纪元日期。我想检查 DATE 是否等于纪元,如果不是则在日期中设置等效的纪元日期。
我试过 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
注意:这是在秒级别进行比较。如果你想在天级别,你需要调整。您可以为此使用 date
:
where datecol = date '1970-01-01' + floor(<your epoch value> / (24 * 60 * 60)) * interval '1' day