SQL-DateName()及DatePart()

本文详细介绍了SQL Server中的DateName()和DatePart()函数,包括它们的语法、返回类型和常见用法。DateName()返回日期部分的字符串,如月份名称,而DatePart()返回相应日期部分的整数值。通过示例代码展示了如何获取当前日期的年、月、日等信息,并指出两者在不同SQL SERVER版本和语言环境下的表现差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习目标:

sql server 中DateName()函数及DatePart()函数


学习内容:

DateName():返回代表指定日期的指定日期部分的字符串

语法:DateName(datepart,date) 返回类型:nvarchar

Datepart():返回代表指定日期的指定日期部分的整数

语法:Datepart(datepart,date) 返回类型:int

datepart输入格式:

日期部分缩写备注
yearyy,yyyy
quarterqq,q季度
monthmm,m
dayofyeardy,y一年中的第几天
daydd,d
weekwk,ww一年中的第几周
weekdaydw星期几(日期部分返回对应于星期中的某天的数,例如:Sunday =1,Monday=2以此类推)
Hourhh小时
minutemi,n分钟
secondss,s
millisecondms毫秒

示例代码:

select GETDATE() as '当前日期时间',
DateName(year,GetDate())+'-'+DateName(month,GetDate())+'-'+DateName(day,GetDate()) as '当前日期', 
DateName(quarter,GetDate()) as '第几季度',
DateName(week,GetDate()) as '一年中的第几周',
DateName(DAYOFYEAR,GetDate()) as '一年中的第几天',
DateName(year,GetDate()) as '年',
DateName(month,GetDate()) as '月',
DateName(day,GetDate()) as '日',
DateName(hour,GetDate()) as '时',
DateName(minute,GetDate()) as '分',
DateName(second,GetDate()) as '秒',
DateName(MILLISECOND,GetDate()) as '豪秒',
DateName(WEEKDAY,GetDate()) as '星期几'

结果:
运行结果

select GETDATE() as '当前日期时间',
DatePart(year,GetDate())+'-'+DatePart(month,GetDate())+'-'+DatePart(day,GetDate()) as '当前日期', 
DatePart(quarter,GetDate()) as '第几季度',
DatePart(week,GetDate()) as '一年中的第几周',
DatePart(DAYOFYEAR,GetDate()) as '一年中的第几天',
DatePart(year,GetDate()) as '年',
DatePart(month,GetDate()) as '月',
DatePart(day,GetDate()) as '日',
DatePart(hour,GetDate()) as '时',
DatePart(minute,GetDate()) as '分',
DatePart(second,GetDate()) as '秒',
DatePart(MILLISECOND,GetDate()) as '豪秒',
DatePart(WEEKDAY,GetDate()) as '星期几'

运行结果
注意:

  1. 对比之后可以发现,Datepart返回int,所以得到的日期是做了运算的结果:DatePart(year,GetDate())+’-’+DatePart(month,GetDate())+’-’+DatePart(day,GetDate())=2021+7+10=2038,经测试’-‘和’+'都是相加
  2. 在多数SQL SERVER 英文版本中(以及部分繁体版),SELECT DATENAME(month, getdate()) 得到 字符串类型的 January ;
    而在简体中文版中:SELECT DATENAME(month, getdate()) 得到的是字符串类型的 ‘01’ ;
    而SELECT DATEPART(month,getdate())则在所有版本中都得到的是int类型的 1。
  3. DateName(WEEKDAY,GetDate())得到的是星期六;DatePart(WEEKDAY,GetDate())得到是7

学习时间:

2021-07-10


总结

附:学习记录,方便查看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sean*Jin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值