如何查找日期列差异为 3 天或更多天的行?

How to find rows where difference in date columns are 3 or more days?

如何查找两个日期列(如下所示)之间的差异等于或大于 3 天的行(我使用什么运算符)?下面的例子只会 return 全部大于。我需要将行限制为 3 天或更长时间的行。那么最好添加一个显示天数差异的列。我正在使用 Microsoft SQL Server Management Studio 版本。 11 on SQL Server 9. 我搜索了有关时差的问题,但没有找到具体情况。感谢您对此的任何帮助。

SELECT        Id, LastContactDate, LastProfileReceivedDate
FROM            Location
WHERE        (Account_Id = '499') AND (LastContactDate > LastProfileReceivedDate)

有几个可能的查询 return 指定的结果。我会这样做:

   SELECT l.Id
        , l.LastContactDate
        , l.LastProfileReceivedDate
        , TIMESTAMPDIFF(DAY,l.LastProfileReceivedDate,l.LastContactDate) AS days_diff
     FROM Location l 
    WHERE l.Account_Id = '499'
      AND l.LastContactDate >= LastProfileReceivedDate + INTERVAL 3 DAY

跟进:

上面的 SQL 查询是针对 MySQL 的(问题标记为 "mysql"),这与 Microsoft SQL Server 完全不同。

对于 Microsoft SQL Server,将 MySQL TIMESTAMPDIFF() 函数替换为 SQL Server DATEDIFF 函数,并替换 + INTERVAL 3 DAY使用 DATEADD 函数:

   SELECT l.Id
        , l.LastContactDate
        , l.LastProfileReceivedDate
        , DATEDIFF(DAY,l.LastProfileReceivedDate,l.LastContactDate) AS days_diff
     FROM Location l 
    WHERE l.Account_Id = '499'
      AND l.LastContactDate >= DATEADD(DAY,3,l.LastProfileReceivedDate)

我使用了第一个答案中的信息并将其修改为这个并且有效:

SELECT ID AS Dormo_ID, LastContactDate, LastProfileReceivedDate, DATEDIFF(天, LastProfileReceivedDate, LastContactDate) AS Days_Difference 从位置 WHERE (Account_Id = '499') AND (DATEDIFF(day, LastProfileReceivedDate, LastContactDate) > 2)