sql server DATEPART() 函数的使用(注意防止入坑)

https://blog.csdn.net/qq_38534363/article/details/106198719

datepart()函数是用来返回 指定日期时间的指定日期部分的整数。返回类型为:int。
语法:

DATEPART(datepart,date)
1
其中date是日期、时间。part指其中的一部分。所以这个函数的意思就是取日期中的一部分。

函数的第一参数 datepart是指定应返回的日期部分,参数说明如下表:
日期部分 缩写 说明
year yy,yyyy 返还年份
quarter qq,q 返还季度
month mm,m 返还月份
day of year dy ,y 返还一年中的第几天
day dd,d 返还日
week wk,ww 返还一年中的第几周
weekday dw 返还星期几 数据型
hour hh 返还小时
minute mi,n 返还分钟
second ss,s 返还秒
millisecond ms 返还毫秒数


sql 举例 :

--分别取出日期'2018-11-03 14:13:12.583' 中的 年/季度/月/日/小时/分钟/秒/毫秒
SELECT DATEPART(yy,'2018-11-03 14:13:12.583') --结果:2018
SELECT DATEPART(year,'2018-11-03 14:13:12.583') --结果:2018
SELECT DATEPART(qq,'2018-11-03 14:13:12.583') --结果:4 第四季度
SELECT DATEPART(quarter,'2018-11-03 14:13:12.583') --结果:4
SELECT DATEPART(mm,'2018-11-03 14:13:12.583') --结果:11 第11月份
SELECT DATEPART(month,'2018-11-03 14:13:12.583') --结果:11
SELECT DATEPART(dd,'2018-11-03 14:13:12.583') --结果:3 当月第3天
SELECT DATEPART(day,'2018-11-03 14:13:12.583') --结果:3
SELECT DATEPART(hh,'2018-11-03 14:13:12.583') --结果:14 当天下午2点
SELECT DATEPART(mi,'2018-11-03 14:13:12.583') --结果:13
SELECT DATEPART(ss,'2018-11-03 14:13:12.583') --结果:12
SELECT DATEPART(ms,'2018-11-03 14:13:12.583') --结果:583


--分别取出日期'2018-11-03 14:13:12.583' 是一年中的第几天/第几周/星期几
SELECT DATEPART(dayofyear,'2018-11-03 14:13:12') --结果:307 2018年的第307天
SELECT DATEPART(week,'2018-11-03 14:13:12') --结果:44 2018年的第44周
SELECT DATEPART(weekday,'2018-11-03 14:13:12') --结果:7 7代表星期六 1代表星期日
--直接取得星期几汉字的方法DateName()函数:
select DateName(weekDay,getdate())


需要注意几点 :
1. SQL Server 将 0 解释为 01/01/1900
SELECT DATEPART(mm, 0), DATEPART(dd, 0), DATEPART(yy, 0)
1
结果是: 1 1 1900

2. DATEPART(weekday,’’’’)  使用时候 返还结果和数据库设置 @@LANGUAGE值有关系
@@DATEFIRST 每周以星期几开始,周一是 1 ,周天是 7 一般来说,此默认值与当前所用语言相关,中文默认为7 ,

即周天可用SET DATEFIRST指定一周中的第一天

SET DATEFIRST 1
SELECT @@DATEFIRST

posted @ 2023-06-27 17:12  yinghualeihenmei  阅读(570)  评论(0编辑  收藏  举报