如何查找日期列差异为 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)
如何查找两个日期列(如下所示)之间的差异等于或大于 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)