网络编程
位置:首页>> 网络编程>> 数据库>> SQL Server各种日期计算方法(3)

SQL Server各种日期计算方法(3)

作者:xpilot 来源:CSDN.NET 发布时间:2008-09-11 21:47:00 

标签:日期,SQL,Server,计算,DATEDIFF

附录:其他日期处理方法

1)去掉时分秒

declare @ datetime

set @ = getdate() --'2003-7-1 10:00:00'

SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0) 

2)显示星期几     

select datename(weekday,getdate())  

3)如何取得某个月的天数

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))) 

4)判断是否闰年:

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 

5)一个季度多少天

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))
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com