--日期类型函数

--SQL2005及以下版本,日期类型只有DATETIME

--SQL2008及以上版本,日期类型有三个,datetime,date,datetime2

--三者区别

--date:只存储年月日,所占空间最小

--datetime:存储年月日时分秒毫秒,

--datetime2

--DateTime字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fff ,3个f,精确到1毫秒(ms),示例 2018-10-22 21:39:15.433 。
DateTime2字段类型对应的时间格式是 yyyy-MM-dd HH:mm:ss.fffffff ,7个f,精确到0.1微秒(μs),示例 2018-10-22 21:40:19.2880929 。
如果用SQL的日期函数进行赋值,DateTime字段类型要用 GETDATE() ,DateTime2字段类型要用 SYSDATETIME() 。
datetime2支持datetime.minvalue,即0001/01/01

--日期函数

--DateAdd(datepart,number,date)

select DATEADD(DAY,200,GETDATE())

select DATEADD(MONTH,200,GETDATE())

select DATEADD(YEAR,200,GETDATE())

 

select * from TbStudent

select stuName,DATEADD(year,-stuAge,getdate()) from TbStudent

 

--计算时间差

--datediff(dateepart,date1,date2)

--date1是较早的时间,date2是较新的时间

select DATEDIFF(MONTH,'1999-1-6',GETDATE())

 

--如果student表中有birthday字段,如何获取每人的年龄

select stuName, DATEDIFF(YEAR,stuBirthday,GETDATE()) as '年龄' from student

 

--day(),month(),year()

select DAY(GETDATE())

select MONTH('1998-10-18')

--没有huor函数

select DATEPART(year,getdate())