立博名家

MS SQL SERVER 的一些有用日期,SQL 日期函数,数据库高级教程。

1.一个月第一天的
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

2.本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

3.一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

4.季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

5.当天的半夜
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

6.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

7.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

8.本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

9.本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)


DATEDIFF (Transact-SQL)

傳回跨越兩個指定日期的日期和時間界限數字。

主題連結圖示 Transact-SQL 語法慣例

DATEDIFF ( datepart , startdate , enddate )
datepart

這是指定要根據日期的哪個部分來計算差異的參數。下表列出 SQL Server 2005 所識別之日期部分和縮寫。這些日期部分和縮寫不能以使用者宣告變數方式提供。

日期部分 縮寫

year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

day

dd, d

week

wk, ww

Hour

hh

minute

mi, n

second

ss, s

millisecond

ms

startdate -

posted on 2008-05-13 14:32  大李  阅读(540)  评论(0)    收藏  举报

导航

立博名家