SQL语句,取日期最后一天

在SQL语句中,当where条件中有一日期变量时,我想把年月日中的日改成当月的最后一天,如30,或31,怎么做啊     select  *  from  table1  where  work_date  >  :aDate  ;   如     aDate  =  “2002-05-12”  则,我需要的是把aDate  修改成“2002-05-31”,        ---------------------------------------------------------------    declare  @dt  datetime  declare  @lastdt  datetime  select  @dt='2002-5-12'  select  @lastdt=dateadd(day,-datepart(day,@dt),dateadd(month,1,@dt))  select  @lastdt    result:    以下是针对上面的修改:    感谢ghxghx的指正,发现以前回答问题时的一个错误,现在更正。    问题:取一个日期所在的月份的天数  错误的回答:  Declare  @dt  datetime  Set  @dt='2002/04/24'  select  DATEDIFF(dd,@dt,dateadd(mm,1,@dt))      正确的(N_Chow  的答案):  Declare  @dt  datetime  Set  @dt='2002/04/24'  SELECT  32-Day(@dt+(32-Day(@dt)))  as  該月份的天數    原因:  如果  Declare  @dt  datetime  Set  @dt='2002/01/31'  select  DATEDIFF(dd,@dt,dateadd(mm,1,@dt))    的结果是2002/01/28    同样的问题:  找到某一个月的最后一天的函数    错误的回答:  declare    @dt    datetime      declare    @lastdt    datetime      select    @dt='2002-5-12'      select    @lastdt=dateadd(day,-datepart(day,@dt),dateadd(month,1,@dt))      select    @lastdt         正确的:  Declare  @dt  datetime  Set  @dt='2002/04/24'  SELECT  cast(str(Year(@dt))+'/'+str(Month(@dt))+'/'+str(32-Day(@dt+(32-Day(@dt))))  as  datetime) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值