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 星期四

 

posted @ 2021-09-23 11:27  望春风  阅读(875)  评论(0编辑  收藏  举报