SQl日期差异

时间:2016-01-05 06:49:32

标签: sql sql-date-functions sqldatetime

我需要在两年内发现两个date的差异 但是年份应该是十进制的 例 我需要找到16-jun-201030-Sep-2014

之间的差异

它应该是4.30

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

它只给我4个

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一起感谢帮助