日期和时间函数

日期和时间类型:

代表日期和一天内的时间的日期和时间数据类型

数据库可以识别以下格式的时间和日期.

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()

结果:image


Year

返回指定日期中的年份

语法:year(date)

Month

返回指定日期中的月份

语法:month(date)

Day

返回指定日期中的天

语法:day(date)

例子:select Year(getdate()),Month(getdate()),Day(getdate())

结果:image

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)

结果:image

例2:

select @time,datepart(quarter,@time),datepart(dayofyear,@time),datepart(week,@time),datepart(weekday,@time)

结果:image

 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)

结果:

image

例2:

select @time,datename(quarter,@time),datename(dayofyear,@time),datename(week,@time),datename(weekday,@time)

结果:

image 

注意:

datepart和datename的区别:

返回类型不同.datepart返回的是int类型,而datename返回的是nvarchar类型. 


Dateadd:

在指定的日期上加一段时间,然后返回新的值.

语法:dateadd(part,number,date)

参数:

part:同上

number:用来增加的值,注意:此时若不是一个整数,则会废弃小数部分,而不会四舍五入

date:日期.

例子:

select getdate(),dateadd(month,12,getdate()),dateadd(minute,60,getdate())

结果:

image

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) 星期差

结果:

image

原文地址:https://www.cnblogs.com/oneword/p/1650026.html