日期和时间函数
日期和时间类型:
代表日期和一天内的时间的日期和时间数据类型
数据库可以识别以下格式的时间和日期.
1.字母日期格式
2.数字日期格式
3.未分隔的字符串
例子:
declare @date datetime --set @date='April 15, 1998' --set @date = '12/10/1900' set @date='19001211' select @date结果:
1900-12-11 00:00:00.000
GetDate:
返回当前系统时间和日期.
语法:getdate()
例子:select getdate()
结果:2010-01-10 11:14:36.483
GetUTCDate:
返回当前的格林尼治标准时间.
当前的UTC时间得自当前的本地时间和计算机操作系统的时区设置.
语法:getutcdate()
例子:select getdate(),getutcdate()
Year
返回指定日期中的年份
语法:year(date)
Month
返回指定日期中的月份
语法:month(date)
Day
返回指定日期中的天
语法:day(date)
例子:select Year(getdate()),Month(getdate()),Day(getdate())
Datepart:
返回指定日期中指定部分的整数.
语法:datepart(part,date)
返回类型:int
参数:part
日期部分 缩写 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
declare @time datetime set @time=getdate()
例1:
select @time,datepart(year,@time),datepart(month,@time),datepart(day,@time), datepart(hour,@time),datepart(minute,@time),datepart(second,@time),datepart(millisecond,@time)
例2:
select @time,datepart(quarter,@time),datepart(dayofyear,@time),datepart(week,@time),datepart(weekday,@time)
Datename
返回指定日期指定部分的字符串.
语法:datename(part,date)
返回类型:nvarchar
参数:与datepart基本相同.
例1:
select @time,datename(year,@time),datename(month,@time),datename(day,@time), datename(hour,@time),datename(minute,@time),datename(second,@time),datename(millisecond,@time)结果:
例2:
select @time,datename(quarter,@time),datename(dayofyear,@time),datename(week,@time),datename(weekday,@time)结果:
注意:
datepart和datename的区别:
返回类型不同.datepart返回的是int类型,而datename返回的是nvarchar类型.
Dateadd:
在指定的日期上加一段时间,然后返回新的值.
语法:dateadd(part,number,date)
参数:
part:同上
number:用来增加的值,注意:此时若不是一个整数,则会废弃小数部分,而不会四舍五入
date:日期.
例子:
select getdate(),dateadd(month,12,getdate()),dateadd(minute,60,getdate())
结果:
Datediff:
返回指定两个日期的日期指定部分的差值.用第一个日期减去第二个日期
语法:datediff(part,startdate,enddate)
例子:
declare @startdate datetime set @startdate = getdate() declare @enddate1 datetime set @enddate1 = dateadd(year,1,getdate()) declare @enddate2 datetime set @enddate2 = dateadd(day,8,getdate()) select @startdate 起始时间,@enddate1 结束时间1,@enddate2 结束时间2,datediff(year,@startdate,@enddate1) 年差, datediff(day,@startdate,@enddate2) 天数差,datediff(week,@startdate,@enddate2) 星期差结果: