SQL SERVER 得到当前时间的0点及23点以及对应的本周、月、年

MSSQL ningjian

 

SQL SERVER 得到当前时间的0点及23点以及对应的本周、月、年

--当天的0点0分0秒,当天的23点59分59秒
select convert(datetime,convert(varchar(10),getdate(),120)) as a,DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)))) as b


--当前时间所在的周一0点0分0秒  当前时间所在的周日23点59分59秒
select  DATEADD(wk,DATEDIFF(wk,0,getdate()),0) as a ,DATEADD(day,6,DATEADD(wk,DATEDIFF(wk,0,getdate()),0)) as b,DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(VARCHAR(10),DATEADD(day,6,DATEADD(wk,DATEDIFF(wk,0,getdate()),0)),120)))) as c


--当前时间所在的月初0点0分0秒  当前时间所在的月末23点59分59秒
 select  dateadd(month, datediff(month, 0, getdate()), 0) as a ,dateadd(month, datediff(month, 0, dateadd(month, 1, getdate())), -1) as b,DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(VARCHAR(10),dateadd(month, datediff(month, 0, dateadd(month, 1, getdate())), -1),120)))) as b 


--当前时间所在的年初0点0分0秒  当前时间所在的年尾23点59分59秒
 select  dateadd(year,datediff(year,0,getdate()),0) as a ,dateadd(year,datediff(year,-1,getdate()),-1) as b,DATEADD(SS,-1,DATEADD(DD,1,CONVERT(DATETIME,CONVERT(VARCHAR(10),dateadd(year,datediff(year,-1,getdate()),-1),120)))) as c

发表评论:

验证码