2008-09-23 52 views

回答

23
Select DateAdd(Month, DateDiff(Month, 0, GetDate()), 0) 

運行這在一列上,用你的列名替換GetDate()。

這段代碼的訣竅是使用DateDiff。 DateDiff返回一個整數。第二個參數(0)表示SQL Server中的0日期,即1900年1月1日。因此,datediff會計算自1900年1月1日以來的整數個月,然後將該月數加到1900年1月1日。最終效果是刪除日期時間值的日期(和時間)部分。

+1

此代碼是由真棒。它也適用於其他時間單位。 – 2008-09-23 15:11:46

7
SELECT DATEADD(mm, DATEDIFF(mm, 0, @date), 0) 
2

像這樣的工作....

UPDATE YOUR_TABLE 
SET NewColumn = DATEADD(day, (DATEPART(day, OldColumn) -1)*-1, OldColumn) 
+0

表達式可能會更簡單一些:`DATEADD(day,1 - day(OldColumn),OldColumn)`。然而,DATEADD&DATEDIFF方法更好,因爲它也重置時間部分。 – 2011-06-04 09:45:28

0

只需使用

DATEADD(DAY, 1-DAY(@date), @date) 
相關問題