我需要找到两年date
内的差异,但年份应该是十进制示例我需要找到两者之间16-jun-2010
的差异30-Sep-2014
应该是4.30
年
我尝试按照以下方式选择 DATEDIFF(YY,'16-jun-2010','30-sep-2014') 作为 YearsOfServices
它只给我 4 个
我需要找到两年date
内的差异,但年份应该是十进制示例我需要找到两者之间16-jun-2010
的差异30-Sep-2014
应该是4.30
年
我尝试按照以下方式选择 DATEDIFF(YY,'16-jun-2010','30-sep-2014') 作为 YearsOfServices
它只给我 4 个
内置函数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
- 只需将其四舍五入到所需的精度。
请试试这个
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
你可以试试这个
Declare @a Date
declare @b date
set @a ='07-01-2013'
set @b='08-02-2014'
select (DATEDIFF(DAY,@a,@b))/convert(numeric,365)
我得到了我的答案 Round(DATEDIFF(DD,'16-jun-2010','30-sep-2014')/365.0,1) 作为 Datediff 谢谢你的帮助