Хотя это не очень эффективно для загрузки данных, есть возможность использовать различные функции даты / времени , чтобы выполнить это:
Вы можете проверить это с помощью этой простой строки:
SET @mytime = "2018-09-30 22:59:59";
SELECT
@mytime,
LAST_DAY(@mytime),
HOUR(@mytime),
DAY(@mytime),
DAY(LAST_DAY(@mytime)),
IF(DAY(LAST_DAY(@mytime)) = DAY(@mytime) AND HOUR(@mytime) = 23, 1, 0) AS is_final_hour
;
Просто поиграйте с переменной datetime, которая установлена в начале, чтобы увидеть разные результаты.
После этого вы можете использовать ее в запросе, например:
SELECT
t.mydatetime,
IF(DAY(LAST_DAY(t.mydatetime)) = DAY(t.mydatetime) AND HOUR(t.mydatetime) = 23, 1, 0) AS is_final_hour
FROM
mytable AS t
HAVING
is_final_hour = 1
;