Sql Server日期相关

1.一个月第一天的
SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

2.本周的星期一
SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

3.一年的第一天
SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

4.季度的第一天
SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

5.当天的半夜
SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

6.上个月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

7.去年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

8.本月的最后一天
SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

9.本年的最后一天
SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

10.本月的第一个星期一
select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

 

11)去掉时分秒 
declare  @  datetime 
set  @  =  getdate()  --'2003-7-1  10:00:00' 
SELECT  @,DATEADD(day,  DATEDIFF(day,0,@),  0) 
 
12
)显示星期几
 
select  datename(weekday,getdate())   
 
13
)如何取得某个月的天数
 
declare  @m  int 
set  @m=2  --
月份
 
select    datediff(day,'2003-'+cast(@m  as  varchar)+'-15'  ,'2003-'+cast(@m+1    as  varchar)+'-15') 
另外,取得本月天数
 
select    datediff(day,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())  as  varchar)+'-15'  ,cast(month(GetDate())  as  varchar)+'-'+cast(month(GetDate())+1    as  varchar)+'-15') 
或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天
 
SELECT  Day(dateadd(ms,-3,DATEADD(mm,  DATEDIFF(m,0,getdate())+1,  0))) 
 
14
)判断是否闰年:
 
SELECT  case  day(dateadd(mm,  2,  dateadd(ms,-3,DATEADD(yy,  DATEDIFF(yy,0,getdate()),  0))))  when  28  then  '
平年'  else  '闰年
'  end 
或者
 
select  case  datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01')) 
when  28  then  '
平年'  else  '闰年
'  end 
 
15
)一个季度多少天
 
declare  @m  tinyint,@time  smalldatetime 
select  @m=month(getdate()) 
select  @m=case  when  @m  between  1  and  3  then  1 
                       when  @m  between  4  and  6  then  4 
                       when  @m  between  7  and  9  then  7 
                       else  10  end 
select  @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' 
select  datediff(day,@time,dateadd(mm,3,@time)) 

原文地址:https://www.cnblogs.com/songrun/p/1436937.html