Как компенсировать MySQL TIMESTAMPDIFF за переполнение - PullRequest
0 голосов
/ 04 сентября 2018

Я использую функцию MySQL TIMESTAMPDIFF() для вычисления разницы в месяцах между двумя датами, но есть проблема с переполнением.

Допустим, у меня есть дата, и я использую MySQL для вычисления этой же даты через 1 месяц:

select DATE_ADD('2018-10-31', INTERVAL 1 MONTH) возврат 2018-11-30

Итак, теперь у меня есть две даты, 2018-10-31 и 2018-11-30.

Теперь я хотел бы вычислить интервал в месяцах между этими датами, но

select TIMESTAMPDIFF(MONTH, '2018-10-31', '2018-11-30') возвращает 0 из-за количества дней в ноябре, на которое корректируется DATE_ADD ().

Таким образом, учитывая две даты, которые рассчитываются, как указано выше, с помощью DATE_ADD () и с интервалом n месяцев, можно использовать либо TIMESTAMPDIFF (), либо другую функцию для вычисления n

1 Ответ

0 голосов
/ 04 сентября 2018

Одно из решений, которое вы можете использовать, это проверить разницу между днями двух дат. В этом случае у вас будет 30 дней, так что вы можете рассмотреть его через месяц или менее. В документации по MySQL есть несколько примеров, где описана месячная проверка между периодами более 31 дня.

select TIMESTAMPDIFF(DAY,'2018-10-31','2018-11-30');
Result: 30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...