【问题标题】:SQL SELECT Difference between two days greater than 1 daySQL SELECT 两天之差大于 1 天
【发布时间】:2018-05-12 15:09:04
【问题描述】:

我有桌子 T1

ID  SCHEDULESTART         SCHEDULEFINISH
1   2018-05-12 14:00:00   2018-05-14 11:00:00
2   2018-05-30 14:00:00   2018-06-01 11:00:00
3   2018-02-28 14:00:00   2018-03-02 11:00:00
4   2018-02-28 14:00:00   2018-03-01 11:00:00
5   2018-05-30 14:00:00   2018-05-31 11:00:00

我想选择天数差异(小时数差异并不重要)大于 1 天的所有行。 如果 SCHEDULESTART 或 SCHEDULEFINISH 在同一天或 SCHEDULEFINISH 在第二天,则不应选择这些行。 所以结果应该返回带有 ID 的行:1 2 3 因为第一行有两天不同,第二行(6 月 1 日是 5 月 30 日之后的 2 天)和第三行(3 月 2 日是 2 月 28 日之后的 2 天)。 这有可能吗? 我知道函数DAY 但这只会返回那一个月的天数!!! 我必须用

提出我的问题
SELECT ID FROM T1 WHERE ... 

提前致谢

【问题讨论】:

  • 甲骨文、火鸟、mssql?我猜datediff 可以使用。
  • DB2(IBM 数据库)。我标记了它
  • @Sk1X1 。 . .您可以单击标签以查看它们的含义。如果单击“db2”,您将看到它指的是 IBM 生产的“特定”数据库。我将“特定”放在引号中,因为它有无数个版本,因为它是最古老的关系数据库之一。

标签: sql db2 where where-clause days


【解决方案1】:

在 DB2 中,这应该可以工作:

select t1.*
from t1
where date(schedulestart) < date(schedulefinish) - 1 day;

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多