Sql語句 日期函式用法

2021-04-12 13:02:32 字數 4587 閱讀 8713

sql server日期時間函式

sql server中的日期與時間函式

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

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年

sql server

日期格式的轉換

sql server中文版的預設的日期欄位datetime格式是yyyy-mm-dd thh:mm:ss.mmm 

例如:

select getdate()

2004-09-12 11:06:08.177

這對於在要不同資料庫間轉移資料或者習慣oracle日期格式yyyy-mm-dd hh24:mi:ss的人多少有些不方便.

我整理了一下sql server裡面可能經常會用到的日期格式轉換方法:

舉例如下:

select convert(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(convert(varchar, getdate(), 120 ),'-',''),' ',''),':','')

20040912110608

select convert(varchar(12) , getdate(), 111 )

2004/09/12

select convert(varchar(12) , getdate(), 112 )

20040912

select convert(varchar(12) , getdate(), 102 )

2004.09.12

其它我不常用的日期格式轉換方法:

select convert(varchar(12) , getdate(), 101 )

09/12/2004

select convert(varchar(12) , getdate(), 103 )

12/09/2004

select convert(varchar(12) , getdate(), 104 )

12.09.2004

select convert(varchar(12) , getdate(), 105 )

12-09-2004

select convert(varchar(12) , getdate(), 106 )

12 09 2004

select convert(varchar(12) , getdate(), 107 )

09 12, 2004

select convert(varchar(12) , getdate(), 108 )

11:06:08

select convert(varchar(12) , getdate(), 109 )

09 12 2004 1

select convert(varchar(12) , getdate(), 110 )

09-12-2004

select convert(varchar(12) , getdate(), 113 )

12 09 2004 1

select convert(varchar(12) , getdate(), 114 )

11:06:08.177

更多的及具體說明請參考sql server的聯機叢書.

sql語句 日期時間函式

date 日期時間字串,修正符,修正符.time 日期時間字串,修正符,修正符.datetime 日期時間字串,修正符,修正符.julianday 日期時間字串,修正符,修正符.strftime 日期時間格式,日期時間字串,修正符,修正符.這5個函式需要乙個日期時間字串做引數,修正符可以從零到多個,...

SQL語句求日期

sql語句求日期 select add months sysdate,1 lastday from dual 上個月的今天 select to char add months last day sysdate 1 yyyy mm dd lastday from dual 上個月的最後一天 selec...

SQL語句中DATEDIFF 函式的用法

datediff datepart startdate enddate 釋義 計算時間差 datepare值 year quarter month week day hour minute second millisecond startdate 開始日期 enddate 結束日期 getdate ...