SqlServer常见的日期处理
1.Convert() 函数是把日期转换为新数据类型的通用函数
语法:CONVERT(data_type(length),data_to_be_converted,style)
常用的日期格式
select convert(nvarchar,getdate(),111) 2021/09/23 select convert(nvarchar,getdate(),112) 20210923 select convert(nvarchar,getdate(),120) 2021-09-23 09:31:16 select convert(nvarchar,getdate(),111) 2021-09-23 09:31:16:030
2.DATEDIFF() 函数返回两个日期之间的时间
语法 DATEDIFF(datepart,startdate,enddate)
常用的时间差
当日: SELECT * FROM UserTable WHERE DATEDIFF(DAY, StartTime, GETDATE())=0 当月: SELECT * FROM UserTable WHERE DATEDIFF(MONTH, StartTime, GETDATE())=0 当季: SELECT * FROM UserTable WHERE DATEDIFF(QQ, StartTime, GETDATE())=0 当年: SELECT * FROM UserTable WHERE DATEDIFF(YEAR, StartTime, GETDATE())=0 获取前一天、月、季度或年等,函数等于1。 获取后一天、月、季度或年等,函数等于-1。
3.DATEADD() 函数 在日期中添加或减去指定的时间间隔
语法 :DATEADD(datepart,number,date)
date 参数是合法的日期表达式。number 是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数
减2天 select dateadd(day,-2,'2021-09-23') 2021-09-21 00:00:00.000 加2天 select dateadd(day,-2,'2021-09-23') 2021-09-25 00:00:00.000 例:还书日期延长一周 update TAB set endtime =dateadd(week,1,endtime)
4.DATEPART() 函数 用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。
select datepart(yyyy,getdate()) [year],datepart(month,getdate()) [month],datepart(day,getdate()) [day] 结果:2021 9 23
5.DATENAME() 函数 返回代表指定日期的指定日期部分的字符串
select datename(yyyy,getdate()) [year],datename(month,getdate()) [month],datename(day,getdate()) [day],datename(weekday,getdate()) [wekday] 结果 2019 9 23 星期四