SQL 时间函数 Datepart()与DateName()

1.Datepart()

返回代表指定日期的指定日期部分的整数

语法 Datepart(datepart,date)

返回类型 int

datepart:

 

日期部分缩写
year yy, yyyy
quarter qq, q
month mm, m
dayofyear dy, y
day dd, d
week wk, ww
weekday dw日期部分返回对应于星期中的某天的数,例如:Sunday =1
Hour hh
minute mi, n
second ss, s
millisecond ms

declare @date datetime
set @date='2009-12-24 16:35:37.733'
select datepart(year,@date)--2009
select datepart(month,@date)--12
select datepart(day,@date)--24
select datepart(quarter,@date)--4
select datepart(dayofyear,@date)--358
select datepart(weekday,@date)--5
select datepart(week,@date)--52
select datepart(Hour,@date)--16
select datepart(minute,@date)--35

2.DateName()

返回代表指定日期的指定日期部分的字符串

语法 DateName(datepart , date )
返回类型 nvarchar
参数 datepart 同上表格

declare @date datetime
set @date='2009-12-24 16:35:37.733'
select datename(year,@date)--2009
select datename(month,@date)--December
select datename(day,@date)--24
select datename(quarter,@date)--4
select datename(dayofyear,@date)--358
select datename(weekday,@date)--Thursday
select datename(week,@date)--52
select datename(Hour,@date)--16
select datename(minute,@date)--35

3.其他日期函数

declare @date1 datetime,@date2 datetime
set @date1='2009-10-24 16:35:37.733'
set @date2='2009-12-24 16:35:37.733'
select DAY(@date1)--24
select MONTH(@date1)--10 具有确定性 
select YEAR (@date1)--2009具有确定性 
select DATEPART (dw, @date2)

select GETDATE() 不具有确定性 
select GETUTCDATE() 不具有确定性
DATENAME() 不具有确定性
DATEADD(dd,@date1,1) 具有确定性 
DATEDIFF 具有确定性
DATEPART 除了用作 
DATEPART (dw, date) 外都具有确定性。dw 是工作日的日期部分,取决于由设置每周第一天的 SET DATEFIRST所设置的值。 
具有确定性

 

--判断是否为时间

selectcast(isdate('2012-06-02 16:26:07.880') asvarchar)

--获得年

select cast(year('2012-06-0216:26:07.880') as varchar)

selectdatepart(yyyy,'2012-06-02 16:26:07.880')

selectdatename(yyyy,'2012-06-02 16:26:07.880')

--获得月

select cast(Month('2012-06-0216:26:07.880') as varchar)

selectdatepart(mm,'2012-06-02 16:26:07.880')

selectdatename(mm,'2012-06-02 16:26:07.880')

--获得日

select cast(day('2012-06-0216:26:07.880') as varchar)

selectdatepart(dd,'2012-06-02 16:26:07.880')

selectdatename(dd,'2012-06-02 16:26:07.880')

--获得时

selectdatepart(hh,'2012-06-02 16:26:07.880')

selectdatename(hh,'2012-06-02 16:26:07.880')

--获得分

select datepart(n,'2012-06-0216:26:07.880')

select datename(n,'2012-06-0216:26:07.880')

--获得秒

selectdatepart(ss,'2012-06-02 16:26:07.880')

selectdatename(ss,'2012-06-02 16:26:07.880')

--毫秒

selectdatepart(ms,'2012-06-02 16:26:07.880')

selectdatename(ms,'2012-06-02 16:26:07.880')

--季节

selectdatepart(qq,'2012-06-02 16:26:07.880')

selectdatename(qq,'2012-06-02 16:26:07.880')

--一年中的第几天

selectdatepart(dy,'2012-06-02 16:26:07.880')

selectdatename(dy,'2012-06-02 16:26:07.880')

--一年中的第几周

selectdatepart(wk,'2012-06-02 16:26:07.880')

selectdatename(wk,'2012-06-02 16:26:07.880')

--星期

selectdatepart(dw,'2012-06-02 16:26:07.880') --SET DATEFIRST 7每周第一天

selectdatename(dw,'2012-06-02 16:26:07.880')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值