2014-09-08 1 views
0

Я работаю над финансовым проектом, где мне нужно рассчитать разницу в просроченных сутках. Если я использую метод lateiff() mysql, он возвращает результат на основе 365 дней. Мне нужен результат на 360 дней. если использовать следующий SQL запросРазница дат в mysql на основе 360 дней

select datediff('20140908','20130908') from dual; 

MySQL возвращает разницу 365. даты Это фактическая разница даты, но в бухгалтерской/финансовой расчет разница ровно один год (360 дней). Это то, чего я хочу. Результат должен быть 360 вместо 365. В настоящее время я хочу использовать американский стандарт.

+0

"Мне нужен результат, основанный на 360 дней. Пожалуйста, уточните – bpgergo

+0

Сначала вам нужно определить, какой 360-дневный _standart_ (например, США или Европейский) вы хотели бы использовать, тогда вы должны показать, что вы уже пытаетесь, и объяснить, где ваши проблемы. –

+0

Я также столкнулся с этим вопросом. Вот решение: http://www.experts-exchange.com/questions/21912790/DATEDIFF360.html –

ответ

0

Использование

TO_DAYS(date2) - To_DAYS(date1) 

Возвращает количество дней между date1 и date2. Тогда вы можете сделать с результатом то, что вам нужно.

+0

Привет Петр. Этот запрос также возвращает 365 дней. – Prem

1

, чтобы получить тот же результат, как Excel, я нашел следующий код, чтобы использовать в MySQL:

select case 
when (day(Startdate)>=30 or Startdate=last_day(Startdate) then 
    case 
    when(day(Enddate)>=30) then 
     30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate)) 
    else 
     30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate))+days(Enddate)-30 
    end 
else 
    30*(12*(year(Enddate)-year(Startdate))+month(Enddate)-month(Startdate))+days(Enddate)-days(Startdate) 
end 
Смежные вопросы