【问题标题】:How to compare two DateTime columns Oracle如何比较两个日期时间列 Oracle
【发布时间】:2018-06-15 13:35:09
【问题描述】:

我有一个列,我在其中插入事件发生的日期(本地存储),以及事件发送到我的系统的日期。

事件日期和发送日期之间的差不能超过 168 小时(7 天)。

我想选择事件数据 + 168h 低于发送数据的所有行。

类似:

SELECT * FROM SALE
WHERE (DAT_SALE + 168HOUR) < DAT_SEND_SALE;

【问题讨论】:

  • 可能更好的方法是为您的案例使用 INTERVAL
  • Oracle 没有 DateTime 数据类型 - 它有 DATETIMESTAMP 并且它们都有时间组件。

标签: sql oracle select comparison


【解决方案1】:

使用interval

SELECT * 
FROM sale
WHERE (dat_sale + interval '168' HOUR) < dat_end_sale;

您也可以简单地使用 7 天:

SELECT * 
FROM sale
WHERE (dat_sale + 7) < dat_end_sale;

当向datetimestamp 添加(或减去)整数时,该数字隐含天数。

【讨论】:

  • 也许值得一提的是,如果您在时间戳中添加一个数字(不一定是整数),则结果是一个日期,因此您会丢失任何小数秒或时区信息;这可能重要也可能不重要......
猜你喜欢
  • 2021-02-14
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多