В MySQL есть функция LAST_DAY(date) , которая возвращает дату последнего дня месяца:
SELECT LAST_DAY(fecha) AS ultimo_dia
FROM table
Как я могу получить дату первого дня месяца?
В MySQL есть функция LAST_DAY(date) , которая возвращает дату последнего дня месяца:
SELECT LAST_DAY(fecha) AS ultimo_dia
FROM table
Как я могу получить дату первого дня месяца?
Мне приходят в голову две альтернативы:
Оба включают только 2 вызова функций. Они, безусловно, будут отличаться по эффективности в зависимости от того
INTERVAL
, вычисляется ли файл быстрее, чемSUBDATE
.Судя по всему, функции, которая возвращает первый день месяца, нет, ее нужно создать, и она выглядит примерно так:
и вы бы использовали это так
шрифт
первый день месяца
Первый день следующего месяца: это просто последний день + 1
Источник: извлечено из StacOverFlow, доступного по адресу https://stackoverflow.com/questions/3009896/get-the-first-and-last-date-of-next-month-in-mysql .
Быстрый вариант: создайте новую дату, соединив год и месяц даты и указав 1 для дня. Код будет таким:
Вы можете сохранить этот код в функции:
И вызовите функцию непосредственно из
SELECT
:Тестирование в моей БД, я думаю, что это может работать применительно к таблице:
Обновлять:
Кажется, что он работает нормально, только если вы передаете ему определенную запись:
Если вы хотите узнать, например, из таблицы первый день месяца по всем записям, вы можете добавить
MAX
в запрос:просто реализуйте это так:
без необходимости дополнительных функций.
Я нашел решение благодаря упомянутым выше руководствам и сумел получить первый день месяца следующим образом:
При этом он получает дату, опуская время, теперь, если вам нужны дата и время, замените CURRENT_DATE на NOW().
CURRENT_DATE возвращает 01.09.2017, а NOW() возвращает: 01.09.2017, 02:10:39.
Пример запроса для руководства:
Сам по себе он более упорядочен, поскольку возвращает тип DATE.
Есть очень портативный способ, который работает для меня....
Ответ: 2019-08-01