2016-02-24 6 views
0

ПочемуTIMESTAMPDIFF дает неожиданный результат

TIMESTAMPDIFF(MONTH, '2015-12-25', '2016-02-24') 

давая мне 1? Я бы ожидал, что 2016-01-25 будет 1.

Я предполагаю, что он фактически возвращает что-то вроде 1.999 месяцев, и он просто округляется вниз.

Как я могу обойти это? Или есть другая функция для использования.

Я попытался PERIOD_DIFF, но он не принимает во внимание дни

PERIOD_DIFF(DATE_FORMAT('2016-02-24','%Y%m'),DATE_FORMAT('2015-12-25','%Y%m'))

ответ

1

Согласно documentation, устройство для результата является целым числом, в вашем случае это будет возвращать целое число месяцев между две даты, которые являются одной (поскольку второй месяц еще не завершен).