永发信息网

sql 计算两个日期相差多少年月日

答案:2  悬赏:70  手机版
解决时间 2021-02-19 07:47
  • 提问者网友:泪痣哥哥
  • 2021-02-18 13:26
sql 计算两个日期相差多少年月日
最佳答案
  • 五星知识达人网友:深街酒徒
  • 2021-02-18 14:28
select datediff(mm,第一个日期,第二个日期)
全部回答
  • 1楼网友:轮獄道
  • 2021-02-18 15:07
如:起始时间 2011-1-1 截止日期 2011-2-1 两个时间比较相差 0年1个月 如:起始时间 2010-11-1 截止日期 2011-12-1 两个时间比较相差 1年1个月 怎么比较才能得出~ 相差多少年 多少个月 这个当然很简单, 一句sql就可以了:select ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月' 但是如果连几天也要计算呢?闲着没事自己随便在sql server下写了写,store procedures代码如下,应该没可以了:create procedure getdatediff @fromdate nvarchar(10), @todate nvarchar(10) as declare @yeardiff integer declare @monthdiff integer declare @daydiff integer declare @tomonth integer declare @fromday integer declare @today integer set @yeardiff = ltrim(datediff(yy, @fromdate, @todate)) set @monthdiff = ltrim(datediff(mm, @fromdate, @todate)%12) set @tomonth = month(cast(@todate as datetime)) set @fromday = day(cast(@fromdate as datetime)) set @today = day(cast(@todate as datetime)) if (@today - @fromday) < 0 begin if (@tomonth - 1) = 1 or (@tomonth - 1) = 3 or (@tomonth - 1) = 5 or (@tomonth - 1) = 7 or (@tomonth - 1) = 8 or (@tomonth - 1) = 10 or (@tomonth - 1) = 12 begin set @daydiff = 31 + @today - @fromday set @monthdiff = @monthdiff -1 end else begin set @daydiff = 30 + @today - @fromday set @monthdiff = @monthdiff -1 end end else begin set @daydiff = @today - @fromday end select cast(@yeardiff as nvarchar(10)) + '年' + cast(@monthdiff as nvarchar(10)) + '月' + cast(@daydiff as nvarchar(10)) + '日'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯