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)) + '日'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯