3

我需要找到两年date内的差异,但年份应该是十进制示例我需要找到两者之间16-jun-2010的差异30-Sep-2014

应该是4.30

我尝试按照以下方式选择 DATEDIFF(YY,'16-jun-2010','30-sep-2014') 作为 YearsOfServices

它只给我 4 个

4

4 回答 4

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- 只需将其四舍五入到所需的精度。

于 2016-01-05T06:59:18.640 回答
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
于 2016-01-05T07:15:06.940 回答
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)
于 2016-01-05T07:47:27.420 回答
0

我得到了我的答案 Round(DATEDIFF(DD,'16-jun-2010','30-sep-2014')/365.0,1) 作为 Datediff 谢谢你的帮助

于 2016-01-05T15:09:53.570 回答