【问题标题】:How to get difference between dates in SQL如何在 SQL 中获取日期之间的差异
【发布时间】:2019-08-25 05:10:18
【问题描述】:

我已经看到其他答案,但我的问题不同,因为我想获得两个日期之间的差异并在 where 子句中使用它,但它要求我输入天数以获得差异。日期来自我的数据库。

Select datediff(D, cid, ced) as theDateDiff
from customers 

Select datediff(D, cid, ced) as theDateDiff
from customers where theDateDiff>=5

【问题讨论】:

    标签: sql ms-access datediff


    【解决方案1】:

    假设cidced 是您的customers 表中的字段,您不妨尝试以下操作:

    select * from customers c where datediff("d", c.cid, c.ced) >= 5
    

    【讨论】:

      【解决方案2】:

      考虑以下两个涉及您的 MS Access SQL 的问题:

      1. 在大多数情况下,除了某些例外,您不能在同级别查询的其他部分中使用计算列的别名。但是,如果驻留在另一个查询或子查询中,您可以使用这样的别名。

        SELECT *
        FROM (SELECT *, DateDiff("d", cid, ced) AS theDateDiff
              FROM customers) sub  
        where theDateDiff >= 5
        
      2. MS Access 中的 DateDiff 函数与 SQL Server 的 DateDiff 不同,后者似乎是您使用的版本,没有引用 D 作为第一个参数。请记住,即使在同一母公司下,关系数据库世界中也没有完全相同的两种方言。

        因此,将DateDiff(D, cid, ced) 替换为DateDiff("d", cid, ced)

        举一个微软以外的例子,Oracle(公司)现在管理 MySQL,这是一个非常不同的 RDBMS,其方言与旗舰数据库大不相同:Oracle。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-08
        • 2020-03-22
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多