sql server中的年份计算 [英] Year Calculation in sql server
本文介绍了sql server中的年份计算的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好,
我必须在sql server中计算年差,但是这样的话。
如果我的日期类似于2010年9月5日,而下一个日期是2011年1月1日那么它给我1年的日期差异功能,但我不喜欢我想要这个。
我想要的是:如果日期是2010年9月5日,下一个日期是2011年9月5日那么应该给1年。
有谁能让我知道如何解决我的问题?
提前感谢
Mohd Wasif
解决方案
你可以使用SQL DATEDIFF [ ^ ]
我使用了以下内容,因为它是在它之间的11个月之间它会让我 0 年< br $> b $ b
选择 datediff(yy,Getdate(),DAteadd(MM, 11 ,getdate()))
Hi Mohd Wasif,
SELECT * FROM DATE_SAMPLE WHERE SAMPLE_DATE '< /跨度> <温泉n class =code-string> 2003-04-09'
AND ' 2003-04-10'
您好,
请尝试下面的代码,你可以得到你想要的结果..
声明 @ d1 datetime , @ d2 datetime , @ y int , @ m int , @ d int
set @ d1 = < span class =code-string>' 2010-09-05'
set @ d2 = ' 2013-09-05'
set @ y = datediff(年, @ d1 , @ d2 ) - 1
设置 @ m = datediff(月,dateadd(年, @ y , @ d1 ), @ d2 )
if dateadd(月, @ m ,dateadd(年, @ y , @ d1 ))> @ d2 set @ m = @ m - 1
set < span class =code-sdkkeyword> @ d = datediff(day,dateadd(month, @ m ,dateadd(year, @ y , @ d1 )), @ d2 )
如果 @ m = 12 < span class =code-keyword> set @ y + = 1
print cast( @ y as < span class =code-keyword> nvarchar )+ ' year(s)'
Hi all,
I have to calculate year difference in sql server but something like this.
If I have date like 05/September/2010 and next date is 01/January/2011 then it is giving me 1 year from date difference function, but I don''t want this.
What I want is: if date is 05/September/2010 and next date is 05/September/2011 then it should give 1 year.
Can anyone let me know how to sort out my problem?
Thank in advance
Mohd Wasif
解决方案
you can use SQL DATEDIFF[^]
I have used following, As it''s a span of 11 months between it''s returning me 0 Year
select datediff(yy,Getdate(),DAteadd(MM,11,getdate()))
Hi Mohd Wasif,
SELECT * FROM DATE_SAMPLE WHERE SAMPLE_DATE between '2003-04-09' AND '2003-04-10'
Hello ,
Please try this code as below you get result as you want ..
declare @d1 datetime, @d2 datetime, @y int, @m int, @d int set @d1 = '2010-09-05' set @d2 = '2013-09-05' set @y = datediff(year, @d1, @d2) - 1 set @m = datediff(month, dateadd(year, @y, @d1), @d2) if dateadd(month, @m, dateadd(year, @y, @d1)) > @d2 set @m = @m - 1 set @d = datediff(day, dateadd(month, @m, dateadd(year, @y, @d1)), @d2) if @m = 12 set @y += 1 print cast(@y as nvarchar) + ' year(s) '
这篇关于sql server中的年份计算的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文