关于时间函数,问一个简单的问题!
下面是我的求时间间隔函数,当我改变@time2,出现了我无法解释的错误,具体如下:
- SQL code
declare @time1 datetime,@time2 datetimeselect @time1='2011-01-01',@time2='2011-12-31'select rtrim(right(year(@time2-@time1),2)*1)+'年零'+rtrim(month(@time2-@time1))+'月'/*0年零12月,这个对了!*/godeclare @time1 datetime,@time2 datetimeselect @time1='2011-01-01',@time2='2012-12-31'select rtrim(right(year(@time2-@time1),2)*1)+'年零'+rtrim(month(@time2-@time1))+'月'/*2年零1月,明显不对!*/godeclare @time1 datetime,@time2 datetimeselect @time1='2011-01-01',@time2='2013-12-31'select rtrim(right(year(@time2-@time1),2)*1)+'年零'+rtrim(month(@time2-@time1))+'月'/*3年零1月,也不对*/
[解决办法]
declare @time1 datetime,@time2 datetime
select @time1='2011-01-01',@time2='2016-01-31'
select rtrim(datediff(year,@time1,@time2))+'年零'+rtrim(datediff(month,@time1,@time2)%12)+'月'