我需要在两年内发现两个date
的差异
但是年份应该是十进制的
例
我需要找到16-jun-2010
到30-Sep-2014
它应该是4.30
年
我尝试以下方式 选择DATEDIFF(YY,'16 -jun-2010','30-sep-2014')作为YearsOfServices
它只给我4个
答案 0 :(得分:6)
内置函数datediff()
确实计算了到日期之间交叉的周期边界的数量。
datediff(yy,'16 jun 2014','30 Sep 2015')
returns 1
如果您计算两个日期之间的差异,并将它们除以一个日历年的平均长度(以400天为单位的天数(365.2425)),您将获得更准确的结果:
datediff(day,{start-date},{end-date},) / 365.2425
例如,
select datediff(day,'1 Jan 2000' ,'18 April 2014') / 365.2425
return 14.29461248
- 将其四舍五入到所需的精度。
答案 1 :(得分:0)
请试试这个
SELECT DATEDIFF(dd, '16-jun-2010','30-Sep-2014')/365.0 AS DiffDate
要么你应该尝试
SELECT DATEDIFF(mm, '16-jun-2010','30-sep-2014')/12.0 AS DiffDate
答案 2 :(得分:0)
你可以试试这个
Declare @a Date
declare @b date
set @a ='07-01-2013'
set @b='08-02-2014'
select (DATEDIFF(DAY,@a,@b))/convert(numeric,365)
答案 3 :(得分:0)
我得到了答案Round(DATEDIFF(DD,' 16-jun-2010',' 30-sep-2014')/ 365.0,1)和Datediff一起感谢帮助