SQl Разница в дате

Мне нужно найти разницу в двух date в годах, но годы должны быть в десятичном примере, мне нужно найти разницу между 16-jun-2010 в 30-Sep-2014

и это должно быть 4.30 YRS

я пытаюсь следующим образом выбрать DATEDIFF(YY,'16-июнь-2010','30-сентябрь-2014') в качестве YearsOfServices

это дает мне только 4

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 - просто округлите его с желаемой точностью.

Я получил свой ответ Раунд (DATEDIFF(DD,'16-июнь-2010','30-сентябрь-2014')/365.0,1) как Datediff, спасибо за помощь

Ты можешь попробовать это

Declare @a Date
declare @b date
set @a ='07-01-2013'
set @b='08-02-2014'




 select  (DATEDIFF(DAY,@a,@b))/convert(numeric,365)

Пожалуйста, попробуйте это

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
Другие вопросы по тегам