SQL資料庫中日期函式

2021-05-28 05:54:31 字數 3970 閱讀 5079

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 yy yyyy 年 1753 ~ 9999

quarter qq q    季 1 ~ 4

month mm m    月1 ~ 12

day of year dy y   一年的日數,一年中的第幾日 1-366

day dd d    日,1-31

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

week wk ww   周,一年中的第幾周 0 ~ 51

hour hh h    時0 ~ 23

minute mi n   分鐘0 ~ 59

second ss s 秒 0 ~ 59

millisecond ms - 毫秒 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 和smalldatetime 型別的資料,執行算術運算。與其它函式一樣,可以在

select 語句的select 和where 子句以及表示式中使用日期函式。其使用方法如下:

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

·day()

day() 函式語法如下:

day ()

day() 函式返回date_expression 中的日期值。

·month()

month() 函式語法如下:

month ()

month() 函式返回date_expression 中的月份值。

與day() 函式不同的是,month() 函式的引數為整數時,一律返回整數值1,即sql server 認為其

是1900 年1 月。

·year()

year() 函式語法如下:

year ()

year() 函式返回date_expression 中的年份值。

圍,否則會出現錯誤。

·dateadd()

dateadd() 函式語法如下:

dateadd (, , )

dateadd() 函式返回指定日期date 加上指定的額外日期間隔number 產生的新日期。引數「datepart

」 在日期函式中經常被使用,它用來指定構成日期型別資料的各元件,如年、季、月、日、星期等。

其取值如表4-9 所示:

·datediff()

datediff() 函式語法如下:

datediff() (, , )

datediff() 函式返回兩個指定日期在datepart 方面的不同之處,即date2 超過date1的差距值,其

結果值是乙個帶有正負號的整數值。針對不同的datepart, datediff()函式所允許的最大差距值不

一樣,如:datepart 為second 時,datediff() 函式所允許的最大差距值為68: 年datepart 為

millisecond 時,datediff() 函式所允許的最大差距值為24 天20 小時30 分23 秒647 毫秒。

·datename()

datename() 函式語法如下:

datename (,

datename() 函式以字串的形式返回日期的指定部分此部分。由datepart 來指定。

·datepart()

datepart() 函式語法如下:

datepart (, )

datepart() 函式以整數值的形式返回日期的指定部分。此部分由datepart 來指定。

datepart (dd, date) 等同於day (date)

datepart (mm, date) 等同於month (date)

datepart (yy, date) 等同於year (date)

·getdate()

getdate() 函式語法如下:

getdate()

getdate() 函式以datetime 的預設格式返回系統當前的日期和時間,它常作為其它函式或命令的參

數使用。

例項:1.獲取兩個日期間的平均值

select dateadd(dd,datediff(day,'2001-08-12','2011-06-25')/2,'2001-08-12')

結果:2006-07-19 00:00:00.000

Sql 中日期函式的比較

select convert varchar 8 getdate 112 大概欄位有postdate,enddate標誌註冊時間和到期時間!上午把到期時間,剩餘天數及24小時登入和和註冊的使用者多完成了,用了乙個函式dateditt 檢測24小時登入和註冊使用者的sql語句 case login s...

sql中日期時間相關函式

增加日期 date add adddate select date add 2020 11 04 interval 31day date 輸出 2020 12 05 select adddate 2020 11 04 31 date 輸出 2020 12 05計算兩個時間差 timestampdif...

sql中日期操作

1.看到乙個帖子,裡面日期操作函式挺多,方法技巧也挺好,學習了。declare s date select s 2012 01 01 定義開始日期 select cast datepart yy,dateadd dd,number,s as varchar 4 年 cast datepart mm,...