--日期类型函数
--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())