通过两个日期字段查找特定期间

时间:2017-10-18 14:18:14

标签: sql sql-server

让我们说我有datefield1和datefield2,通常,datefield2比datafield1提前3个月。但是,在某些情况下,它超过3个月,所以我只需要提取不同时间超过三个月的日期。

示例:

id | Datefield1 | Datefield2
1    08/15/2017    11/15/2017
2    05/10/2017    10/11/2017
3    06/01/2018   09/01/2017

结果应该只提取id 2。 提前谢谢。

4 个答案:

答案 0 :(得分:3)

WHERE DATEDIFF(MM,Datefield1,Datefield2) > 3

可用于查找月份差异超过3的位置。

答案 1 :(得分:1)

您可以使用datediff来解决它:

select id
from t1
where DATEDIFF(month,Datefield1,Datefield2)>3

答案 2 :(得分:1)

我没有尝试过SQL,但我认为你可以尝试使用类似的东西:

SELECT id FROM table
WHERE DATEDIFF(month,Datefield1,Datefield) > 3

问候。

答案 3 :(得分:0)

使用DateDiff

SELECT *
from table1
WHERE DATEDIFF(MONTH, datefield1, datefield2)  > 3

demo

这会给你身份2:

| id |           Datefield1 |           Datefield2 |
|----|----------------------|----------------------|
|  2 | 2017-05-10T00:00:00Z | 2017-10-11T00:00:00Z |

如果您想要更新,请使用DATEADD

UPDATE t1
SET datefield2 = DateADD(MONTH, 3, datefield2)
FROM table1 AS t1
WHERE DATEDIFF(MONTH, datefield1, datefield2)  > 3;