2017-10-18 84 views
-1

假設我有datefield1和datefield2,通常datefield2比datafield1早3個月。然而,有一些情況是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 預先感謝您。

+0

看看DATEDIFF https://docs.microsoft.com/en-us/sql/t-sql/functions/datediff-transact-sql – Leonidas199x

+1

問*「我該怎麼做?」*應該伴隨着你的自己的個人嘗試去解決它,或者至少是一點研究。就目前而言,這個問題太廣泛了,並且作爲請求某人爲您編寫代碼的請求。 – Santi

回答

3
WHERE DATEDIFF(MM,Datefield1,Datefield2) > 3 

可用於尋找到以月爲單位差超過3

+0

謝謝。我的另一個擔心是如何更新Datefiled2 = 3,如果其超過3。 – Messi

+0

你是什麼意思?更新它,以便它有3個整數?或者將該月從Datefield1更改爲3個月? – Leonidas199x

+0

不,日期與三個月不同。考試datefield1 1/1/2017 datefield2應該是3/1/2017。 – Messi

1

您可以使用DATEDIFF來求解它:

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

使用DateDiff

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

demo

這會給你的ID 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; 
+0

我的另一個問題是如何更新Datefiled2 = 3,如果它超過3. – Messi

+0

@Messi'Datefiled2'是數據類型datetime,你不能用整數更新它? – 2017-10-18 14:47:20

+0

對不起,我的意思是3個月不同。 – Messi

1

我還沒有嘗試在SQL,但我認爲你可以嘗試與類似的東西:

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

問候。

相關問題