1 --计算一个月第一天 2 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) 3 --计算今天年的第一天 4 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) 5 --本周的星期一 6 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) 7 --季度的第一天 8 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0) 9 --当天的半夜 10 SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0) 11 --上个月的最后一天 12 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)) 13 --去年的最后一天 14 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)) 15 --本月的最后一天 16 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) 17 --本年的最后一天 18 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)) 19 --本月的第一个星期一 20 select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate()) ), 0) 21 --去掉时分秒 22 declare @ datetime 23 set @ = getdate() --'2003-7-1 10:00:00' 24 SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0) 25 --显示星期几 26 select datename(weekday,getdate()) 27 --取得某个月的天数 28 declare @m int 29 set @m=2 --月份 30 select datediff(day,'2009-'+cast(@m as varchar)+'-15' ,'2009-'+cast(@m+1 as varchar)+'-15') 31 --另外,取得本月天数 32 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') 33 --或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天 34 SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))) 35 --判断是否闰年: 36 SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平年' else '闰年' end 37 38 select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01')) 39 when 28 then '平年' else '闰年' end 40 --一个季度多少天 41 declare @m tinyint,@time smalldatetime 42 select @m=month(getdate()) 43 select @m=case when @m between 1 and 3 then 1 44 when @m between 4 and 6 then 4 45 when @m between 7 and 9 then 7 46 else 10 end 47 select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01' 48 select datediff(day,@time,dateadd(mm,3,@time)) 49 50 --用一条语句得出某日期所在月份的最大天数 51 SELECT DAY(DATEADD(dd, -DAY('2009-02-13'), DATEADD(mm, 1, '2009-02-13'))) AS 'Day Number' 52 53 54 55 --Sql Server 中一个非常强大的日期格式化函数 56 Select CONVERT(varchar(100), GETDATE(), 0)--: 01 20 2010 11:27AM 57 Select CONVERT(varchar(100), GETDATE(), 1)--: 01/20/10 58 Select CONVERT(varchar(100), GETDATE(), 2)--: 10.01.20 59 Select CONVERT(varchar(100), GETDATE(), 3)--: 20/01/10 60 Select CONVERT(varchar(100), GETDATE(), 4)--: 20.01.10 61 Select CONVERT(varchar(100), GETDATE(), 5)--: 16-05-06 62 Select CONVERT(varchar(100), GETDATE(), 6)--: 16 05 06 63 Select CONVERT(varchar(100), GETDATE(), 7)--: 05 16, 06 64 Select CONVERT(varchar(100), GETDATE(), 8)--: 10:57:46 65 Select CONVERT(varchar(100), GETDATE(), 9)--: 05 16 2006 10:57:46:827AM 66 Select CONVERT(varchar(100), GETDATE(), 10)--: 05-16-06 67 Select CONVERT(varchar(100), GETDATE(), 11)--: 06/05/16 68 Select CONVERT(varchar(100), GETDATE(), 12)--: 060516 69 Select CONVERT(varchar(100), GETDATE(), 13)--: 16 05 2006 10:57:46:937 70 Select CONVERT(varchar(100), GETDATE(), 14)--: 10:57:46:967 71 Select CONVERT(varchar(100), GETDATE(), 20)--: 2006-05-16 10:57:47 72 Select CONVERT(varchar(100), GETDATE(), 21)--: 2006-05-16 10:57:47.157 73 Select CONVERT(varchar(100), GETDATE(), 22)--: 05/16/06 10:57:47 AM 74 Select CONVERT(varchar(100), GETDATE(), 23)--: 2006-05-16 75 Select CONVERT(varchar(100), GETDATE(), 24)--: 10:57:47 76 Select CONVERT(varchar(100), GETDATE(), 25)--: 2006-05-16 10:57:47.250 77 Select CONVERT(varchar(100), GETDATE(), 100)--: 05 16 2006 10:57AM 78 Select CONVERT(varchar(100), GETDATE(), 101)--: 05/16/2006 79 Select CONVERT(varchar(100), GETDATE(), 102)--: 2006.05.16 80 Select CONVERT(varchar(100), GETDATE(), 103)--: 16/05/2006 81 Select CONVERT(varchar(100), GETDATE(), 104)--: 16.05.2006 82 Select CONVERT(varchar(100), GETDATE(), 105)--: 16-05-2006 83 Select CONVERT(varchar(100), GETDATE(), 106)--: 16 05 2006 84 Select CONVERT(varchar(100), GETDATE(), 107)--: 05 16, 2006 85 Select CONVERT(varchar(100), GETDATE(), 108)--: 10:57:49 86 Select CONVERT(varchar(100), GETDATE(), 109)--: 05 16 2006 10:57:49:437AM 87 Select CONVERT(varchar(100), GETDATE(), 110)--: 05-16-2006 88 Select CONVERT(varchar(100), GETDATE(), 111)--: 2006/05/16 89 Select CONVERT(varchar(100), GETDATE(), 112)--: 20060516 90 Select CONVERT(varchar(100), GETDATE(), 113)--: 16 05 2006 10:57:49:513 91 Select CONVERT(varchar(100), GETDATE(), 114)--: 10:57:49:547 92 Select CONVERT(varchar(100), GETDATE(), 120)--: 2006-05-16 10:57:49 93 Select CONVERT(varchar(100), GETDATE(), 121)--: 2006-05-16 10:57:49.700 94 Select CONVERT(varchar(100), GETDATE(), 126)--: 2006-05-16T10:57:49.827 95 Select CONVERT(varchar(100), GETDATE(), 130)--: 18 ???? ?????? 1427 10:57:49:907AM 96 Select CONVERT(varchar(100), GETDATE(), 131)--: 18/04/1427 10:57:49:920AM 97 98 --常用: 99 Select CONVERT(varchar(100), GETDATE(), 8)--: 10:57:46 100 Select CONVERT(varchar(100), GETDATE(), 24)--: 10:57:47 101 Select CONVERT(varchar(100), GETDATE(), 108)--: 10:57:49 102 Select CONVERT(varchar(100), GETDATE(), 12)--: 060516 103 Select CONVERT(varchar(100), GETDATE(), 23)--: 2006-05-16 104 Select CONVERT(varchar(100), GETDATE(), 102)--: 2010.01.20 105 Select CONVERT(varchar(100), GETDATE(), 112)--: 20100120
日期相关计算经典集
猜你喜欢
转载自www.cnblogs.com/Challenger/p/10887352.html
今日推荐
周排行