天天看點

SQL Server幾個常用Date函數(二)

函數

描述

GETDATE()

傳回目前日期和時間

CONVERT()

用不同的格式顯示日期/時間

DATEDIFF()

傳回兩個日期之間的時間

DATEPART()

傳回日期/時間的單獨部分

DATEADD()

在日期中添加或減去指定的時間間隔

該函數用來計算兩個日期之間的天(年、月…)數,enddate 減去 startdate,如果 startdate 晚于 enddate,則傳回負值。其中,startdate表示起始時間;enddate表示結束時間;datepart表示時間間隔的計算機關,如年、月、日等。datepart 參數幾種常用的值如下表所示:

Datepart表:

Depart值

含義

yy, yyyy

qq, q

季度

mm, m

dy, y

一年中第幾天

dd, d

wk, ww

一年中第幾周

dw, w

一周中第幾天,從周日開始算

hh

小時

mi, n

分鐘

ss, s

ms

毫秒

mcs

微妙

ns

納秒

執行個體:查找最近一周内注冊的使用者

          SELECT * FROM UserInfo

          where DATEDIFF (DAY ,regtime,GETDATE ()) BETWEEN 0 AND 7

該 函數用于傳回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。其中date 參數是合法的日期表達式;datepart 參數見上表。

執行個體:檢視cathy注冊的年、月、日

            SELECT DATEPART (YYYY ,regtime )as year,DATEPART (MM ,regtime ) as month,DATEPART (DD,regtime ) as date

            FROM UserInfo 

            WHERE sUserName ='CATHY'

該 函數可以計算添加或減去相應時間間隔的時間。其中date 參數是合法的日期表達式。number 是您希望添加的間隔數,如果您指定一個帶小數的值,則将小數截去且不進行舍入,對于未來的時間,此數是正數,對于過去的時間,此數是負數。datePart參數見DateDiff中的清單。

執行個體:

          DECLARE @A DATE

          SET @A = GETDATE()

          SELECT DATEADD(DAY,3,@A)

          SELECT DATEADD(DAY,9,@A)

6.關于季度查詢的執行個體:

<a></a>

declare @date  datetime

set @date=getdate()

--季度初,計算給定日期所在季度的第一天

select dateadd(quarter,datediff(quarter,0,@date),0) as '目前季度的第一天'

--季度末,計算給定日期所在季度的最後一天

select dateadd(quarter,1+datediff(quarter,0,@date),-1) as '目前季度的最後一天'

--上個季度初

select dateadd(quarter,datediff(quarter,0,@date)-1,0) as '目前季度的上個季度初'

--上個季度末

select dateadd(quarter,datediff(quarter,0,@date),-1) as '目前季度的上個季度末'

--下個季度初

select dateadd(quarter,1+datediff(quarter,0,@date),0) as '目前季度的下個季度初'

--下個季度末

select dateadd(quarter,2+datediff(quarter,0,@date),-1) as '目前季度的下個季度末'

    本文轉自 陳敬(Cathy) 部落格園部落格,原文連結:http://www.cnblogs.com/janes/archive/2011/04/12/2013898.html,如需轉載請自行聯系原作者