用法:
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当前时间_date5 ,DATEPART(YEAR,GETDATE()) AS当前年份_date6 ,DATEPART(yy,GETDATE()) AS当前年份简写_date7 ,DATEPART(yy,'2019-07-18 14:17:25.793') AS当前年份简写_string8 ,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