DATEADD和DATEDIFF是兩個時間函數﹐我們先看一下它們的聯機幫助﹐然后我再貼一個利用這兩個函數來取得有意義的日期的方法﹗
DATEADD
在指定日期新增一個時間間隔,並傳回新的 datetime 值。
語法
DATEADD ( datepart , number, date )
DATEDIFF
傳回跨越兩個指定日期的日期與時間界線數目。
語法
DATEDIFF ( datepart , startdate , enddate )
我們完全可以通過計算當前的時間間隔﹐進行一些適當的加減來得到想要的日期,比如﹕
得到一個月的第一天﹕
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
該計算方法是先計算當前日期和"1900-01-01"的時間間隔數﹐然后再把結果加到"1900-01-01"來得到最終結果﹗
當然﹐進一步﹐舉一反三﹐我現在想得到上個月的最后一天﹐我們的腳本可以寫成﹕
SELECT DATEADD(dd,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))