1. 程式人生 > >sqlserver 擷取日期年份和月份使用datepart函式

sqlserver 擷取日期年份和月份使用datepart函式

轉自:https://blog.csdn.net/hzfw2008/article/details/78058916

sqlserver 擷取日期年份和月份使用datepart函式,函式使用方法如下:

一、函式功能:DATEPART() 函式用於返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。

二、語法:DATEPART(datepart,date)

三、引數說明:date 引數是合法的日期表示式。datepart 引數可以是下列的值:

四、例項

1、擷取年份:datepart(yy,'2017-1-1') 返回:2017

2、擷取月份:datepart(mm,'2017-1-1') 返回:1

擷取小時:
SELECT DATEPART(hh,'2013-08-08 13:12:11') =13
擷取分鐘:
SELECT DATEPART(mi,'2013-08-08 13:12:11') =12
擷取秒:
SELECT DATEPART(ss,'2013-08-08 13:12:11') =11

 

 

五、datepart函式返回的是整型數值,如果需要返回字元型,那麼使用datename()函式,用法與datepart相同,只是返回資料型別不同。

 

GetDate()獲得的日期由兩部分組成,分別是今天的日期和當時的時間: Select GetDate() 
用DateName()就可以獲得相應的年、月、日,然後再把它們連線起來就可以了:

Select Datename(year,GetDate())+'-'+Datename
(month,GetDate())+'-'+Datename(day,GetDate())

另外,DateName()還可以獲得到小時、時間、秒、星期幾、第幾周,分別如下:

Select Datename(hour,GetDate())
Select Datename(minute,GetDate())
Select Datename(second,GetDate())
Select Datename(weekDay,GetDate())
Select Datename(week,GetDate())

SQL中的日期型別DateTime的預設格式就是yyyy-mm-dd hh:mi:ss: mmm,可大多數的情況我們只想得到他的日期部分,而不許要後面的時間。上一篇中提到用Datename()函式來擷取拼接出不包含時間部分的日期,現在再說一種方法,更加簡單的獲取到不包含時間的日期!


使用Convert()函式:

select convert(char(10),GetDate(),120) as Date

* 第3個引數就是用來設定日期型別資料的顯示樣式的,下面介紹幾種樣式的引數:

100   mm dd yyyy

101   mm/dd/yyyy

102   yyyy.mm.dd

103   dd/mm/yyyy

106   dd mm yyyy

108   hh:mi:ss(時間)

111   yyyy/mm/dd

112   yyyymmdd

120   yyyy-mm-dd

提取日期格式:
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06 
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06 
Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06 
Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06 
Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06 
Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46 
Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM 
Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06 
Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16 
Select CONVERT(varchar(100), GETDATE(), 12): 060516 
Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937 
Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967 
Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157 
Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM 
Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 
Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47 
Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250 
Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM 
Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006 
Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16 
Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006 
Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006 
Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006 
Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006 
Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006 
Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM 
Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006 
Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16 
Select CONVERT(varchar(100), GETDATE(), 112): 20060516 
Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513 
Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547 
Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49 
Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700 
Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827 
Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM 
Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM