在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)
SQL语句,取日期最后一天
最新推荐文章于 2024-04-18 18:57:41 发布