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