有關datediff的相應信息,見以下:數據庫
DATEDIFF (datepart ,startdate ,enddate )
datepart函數
是指定所跨邊界類型的 startdate 和 enddate 的一部分。下表列出了全部有效的 datepart 參數。用戶定義的變量等效項是無效的。字符串
dateparttable |
縮寫變量 |
---|---|
yeardate |
yy, yyyyselect |
quarter搜索 |
qq, qim |
monthqq |
mm, m |
dayofyear |
dy, y |
day |
dd, d |
week |
wk, ww |
hour |
hh |
minute |
mi, n |
second |
ss, s |
millisecond |
ms |
microsecond |
mcs |
nanosecond |
ns |
startdate
是一個表達式,能夠解析爲 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值。date 能夠是表達式、列表達式、用戶定義的變量或字符串文字。從 enddate 減去 startdate。
enddate
請參閱 startdate。
1.返回相差兩個季度時間得記錄
代碼以下:須要時,能夠將時間字段改成數據庫中相應的字段
1 declare @startDateTime datetime
2 declare @endDateTime datetime
3 set @startDateTime='2011-01-01'
4 set @endDateTime='2011-07-10'
5 select DATEDIFF(QQ,@startDateTime,@endDateTime)
2.搜索最近3個月的訂單。
代碼以下:
declare @startDateTime datetime
declare @endDateTime datetime
set @startDateTime='2011-05-01'
set @endDateTime=GETDATE()
select DATEDIFF(m,@startDateTime,@endDateTime)
3.返回第一單訂單時間到最近的一單訂單時間的 天數差。
select DATEDIFF(DAY,(select MIN(insDT) from OP_Order),(select MAX(insDT) from OP_Order))
4.使用GETDATE()函數來得到當前時間,
若使用GetDate()+1,結果是在如今的時間上多添加一天。
如:
GetDate(): 2011-08-13 13:53:09.243
GetDate()+1 : 2011-08-14 13:53:09.243
如上,直接在時間的日上加1.
五、使用以下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate
結果:
DiffDate
1
六、使用以下 SELECT 語句:
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate
結果:
DiffDate
-1