DATEDIFF() 函數返回兩個日期之間的天數。函數
DATEDIFF(datepart,startdate,enddate):startdate 和 enddate 參數是合法的日期表達式。datepart 參數能夠是下列的值:spa
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鐘 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
實例:計算一個月的第一天code
select dateadd(mm,DATEDIFF(mm,0,getdate()),0);
原理分析:blog
1. 數字0表明 1900-01-01 00:00:00.000get
select cast(0 as datetime)
1900-01-01 00:00:00.000
2.DATEDIFF(mm,0,getdate()) :獲得與1900-01-01相關多少個月table
3.DATEADD(mm, M, 0) :M即上面獲得相差的月份,0表明1900-01-01 ,加上相關的月分就是這個月的第一天ast