用法:
DATEPART() 函數用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。返回的類型為整型。若要返回字符型可以用DATENAME()函數,可用于時間日期之間的拼接,用法和DATEPART()類似
語法:
DATEPART(datepart,date/string)
date/string是日期與時間的數據類型,datepart是你要提取的那部分數據,返回的類型為整型如:DATEPART(year,'2019-07-18 11:44:57.330')或者DATEPART(yyyy,'2019-07-18 11:44:57.330')
結果為:2019
其他可用的參數如下:
|
datepart |
縮寫形式 |
|---|---|
| year | yy, yyyy |
| quarter | qq, q |
| month | mm, m |
| dayofyear | dy, y |
| day | dd, d |
| week | wk, ww |
| weekday | dw |
| hour | hh |
| minute | mi, n |
| second | ss, s |
| millisecond | ms |
| microsecond | mcs |
| nanosecond | ns |
| TZoffset | tz |
| ISO_WEEK | isowk, isoww |
如果不是date或者字符串類型,我們需要將其轉化為string(varchar)類型,如:
1 declare @shijian decimal(8) 2 set @shijian = 20190718 3 4 SELECT GETDATE() AS 當前時間_date 5 ,DATEPART(YEAR,GETDATE()) AS 當前年份_date 6 ,DATEPART(yy,GETDATE()) AS 當前年份簡寫_date 7 ,DATEPART(yy,'2019-07-18 14:17:25.793') AS 當前年份簡寫_string 8 ,DATEPART(YYYY, CAST(CONVERT(varchar(8), @shijian) as DATE) ) as 當前年份簡寫_decimal
以上所有SQL執行結果為

【題】獲取HS_ESA41M00表KEEP_OF_DATE字段下所有年份的1.1號到1.15號,4.1號到4.15號,7.1號到7.15號,10.1號到10.15號數據
select * from HS_ESA41M00 where DATEPART(MONTH, KEEP_OF_DATE) in(01,04,07,10) and DATEPART(DAY, KEEP_OF_DATE) between 01 and 15
