#mysql #date #select #time
#mysql #Дата #выберите #время
Вопрос:
Я сохраняю некоторые записи в таблице с именем bookings_mst. Я сохраняю дату бронирования и время бронирования отдельно в поля как booking_date и booking_time. Теперь я хочу выбрать записи, время которых наступит в течение следующих 12 часов. Как я могу это сделать?
Ответ №1:
Попробуйте этот вариант —
SELECT * FROM bookings_mst
WHERE
ADDTIME(booking_date, booking_time) BETWEEN NOW() AND NOW() INTERVAL 12 HOUR;
Комментарии:
1. извините, но это не сработало, когда задействованы 2 даты. Например, текущая дата — 12, время — 10 вечера, дата бронирования — 13, а время — 3 часа ночи. Он не будет отображаться.
2. Пожалуйста, покажите ваш набор данных — некоторые инструкции INSERT и желаемый результат.
3. Привет, Деварт, было некоторое недопонимание. Позже я обнаружил, что дата была сохранена с неправильными значениями. Ваш запрос усовершенствован. Спасибо 🙂
Ответ №2:
Попробуйте это:
SELECT * FROM your_table
WHERE DATE_ADD(date_field, INTERVAL time_field HOUR_SECOND) BETWEEN
NOW() AND
DATE_ADD(NOW(), INTERVAL 12 HOUR)
Ответ №3:
Если вы сохраняете дату и время в одном поле datetime, то запрос становится довольно простым. Чего-то подобного должно быть достаточно
SELECT * FROM table
where booking_datetime between utc_timestamp()
and utc_timestamp() INTERVAL 12 HOUR;