网络编程
位置:首页>> 网络编程>> 数据库>> sqlserver 日期比较、日期查询常用语句:月的第一天,季度的第一天等(2)

sqlserver 日期比较、日期查询常用语句:月的第一天,季度的第一天等(2)

  发布时间:2010-08-01 18:58:00 

标签:DATEDIFF,DATEADD,日期比较,sql,server

附录,其他日期处理方法

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