SQLServer時間日期函式速查

2021-04-15 08:31:57 字數 4166 閱讀 5694

sqlserver時間日期函式速查

sqlserver時間日期函式詳解,sqlserver,時間日期,

1.    當前系統日期、時間

select getdate()  

2. dateadd    在向指定日期加上一段時間的基礎上,返回新的 datetime 值

例如:向日期加上2天

select dateadd(day,2,'2004-10-15')    --返回:2004-10-17 00:00:00.000

3. datediff 返回跨兩個指定日期的日期和時間邊界數。

select datediff(day,'2004-09-01','2004-09-18')     --返回:17

select datediff(day,'2004-09-18','2004-09-01')     --返回:-17

4. datepart 返回代表指定日期的指定日期部分的整數。

select datepart(month, '2004-10-15')    --返回 10

5. datename 返回代表指定日期的指定日期部分的字串

select datename(weekday, '2004-10-15')    --返回:星期五

6. day(), month(),year() --可以與datepart對照一下

select 當前日期=convert(varchar(10),getdate(),120)

,當前時間=convert(varchar(8),getdate(),114)

select datename(dw,'2004-10-15')

select 本年第多少周=datename(week,'2004-10-15')

,今天是週幾=datename(weekday,'2004-10-15')

函式引數/功能

getdate( )

返回系統目前的日期與時間

datediff (interval,date1,date2)

以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2-date1

dateadd (interval,number,date)

以interval指定的方式,加上number之後的日期

datepart (interval,date)

返回日期date中,interval指定部分所對應的整數值

datename (interval,date)

返回日期date中,interval指定部分所對應的字串名稱

引數 interval的設定值如下:

值縮 寫(sql server)

(access 和 asp)

說明year

yyyyyy

年 1753 ~ 9999

quarter

qqq  

季 1 ~ 4

month

mmm  

月1 ~ 12

day of year

dyy

一年的日數,一年中的第幾日 1-366

daydd

d  日,1-31

weekdaydww

一周的日數,一周中的第幾日 1-7

week

wkww

周,一年中的第幾周 0 ~ 51

hour

hhh  

時0 ~ 23

minute

min

分鐘0 ~ 59

secondsss

秒 0 ~ 59

millisecondms-

毫秒 0 ~ 999

access 和 asp 中用date()和now()取得系統日期時間;其中datediff,dateadd,datepart也同是能用於access和asp中,這些函式的用法也類似

舉例:

1.getdate() 用於sql server :select getdate()

2.datediff('s','2005-07-20','2005-7-25 22:56:32')返回值為 514592 秒

datediff('d','2005-07-20','2005-7-25 22:56:32')返回值為 5 天

3.datepart('w','2005-7-25 22:56:32')返回值為 2 即星期一(週日為1,週六為7)

datepart('d','2005-7-25 22:56:32')返回值為 25即25號

datepart('y','2005-7-25 22:56:32')返回值為 206即這一年中第206天

datepart('yyyy','2005-7-25 22:56:32')返回值為 2005即2023年

具體的語法:

日期函式用來操作datetime 和**alldatetime 型別的資料,執行算術運算。與其它函式一樣,可以在select 語句的select 和where 子句以及表示式中使用日期函式。其使用方法如下:

日期函式引數,其中引數個數應不同的函式而不同。

在開發資料庫應用中,經常會遇到處理時間的問題,如查詢指定時間的記錄等。下面就這些常見的問題,結合自己的一些經驗,和大家**一下這類問題。

首先介紹一下,sql server裡處理時間的幾個主要函式的用法:

getdate()函式:取得系統當前的日期和時間。返回值為datetime型別的。

用法:getdate()

例子:

select getdate() as dte,dateadd(day,-1,getdate()) as nowdat

輸出結果:

dte nowdat

1999-11-21 19:13:10.083 1999-11-20 19:13:10.083

(1 row(s) affected)

datepart()函式:以整數的形式返回時間的指定部分。

用法:datepart(datepart,date)

引數說明:datepart時要返回的時間的部分,常用取值year、month、day、hour、minute。

date是所指定的時間。

例子:

select datepart(month, getdate()) as 'month number'

輸出結果:

month number

11 (1 row(s) affected)

dateadd()函式:通過給指定的時間的指定部分加上乙個整數值以返回乙個新時間值。

用法:dateadd(datepart,number,date)

引數說明:datepart(同上)

date(同上)

number要增加的值,整型,可正可負,正值返回date之後的時間值,負值返回date

之前的時間值

例子:

select getdate() as today

select dateadd(day,-1,getdate())

select dateadd(day,1,getdate())

輸出:

today

1999-11-21 19:42:41.410

(1 row(s) affected)

yesterday

1999-11-20 19:42:41.410

(1 row(s) affected)

tomorrow

1999-11-22 19:42:41.410

(1 row(s) affected)

datediff()函式:返回兩個時間以指定時間部分來計算的差值。返回整數值。如1991-6-12和1991-6-21之間以天

來算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9個月

用法:datediff(darepart,date1,date2)

引數說明:datepart(同上)

date1、date2(同上date)

例子:

select datediff(month,'1991-6-12','1992-6-21') as a

輸出:

a 12

(1 row(s) affected)

SQL server 時間日期函式 型別轉換

一 時間日期函式 1 set datefirst 1 設定星期一為第一天 datepart函式,返回時間日期中的某乙個部分 引數1是指返回哪乙個部分,dw表示dayofweek 引數2是指哪個時間日期裡面去返回 datefirst是系統常量,在使用時需要加上 select datefirst as ...

時間日期函式

獲取 當前日期 curdate 2021 03 02 select curdate 獲取 當前時間 select curtime 獲取日期和時間 2021 03 02 14 47 31 select now 獲取日期所在的週數 第幾周 select week 1998 02 20 獲取日期中的年份 ...

c 時間日期函式

datetime dt datetime.now label1.text dt.tostring 2007 11 5 13 21 25 label2.text dt.tofiletime tostring 127756416859912816 label3.text dt.tofiletimeutc...