Итак, у меня есть данные в моей базе данных, которые выглядят следующим образом.
id | value| current_date | time | group
1 0 2020-03-30 2020-03-30 19:00:00 2
2 5 2020-03-30 2020-03-30 20:00:00 2
3 10 2020-03-30 2020-03-30 21:00:00 2
4 5 2020-03-30 2020-03-30 22:00:00 2
5 5 2020-03-30 2020-03-30 23:00:00 2
6 5 2020-03-30 2020-03-31 00:00:00 2
7 5 2020-03-30 2020-03-31 01:00:00 2
8 5 2020-03-30 2020-03-31 02:00:00 2
9 5 2020-03-30 2020-03-31 03:00:00 2
10 5 2020-03-30 2020-03-31 04:00:00 2
11 5 2020-03-30 2020-03-31 05:00:00 2
12 5 2020-03-30 2020-03-31 06:00:00 2
13 5 2020-03-30 2020-03-31 07:00:00 2
14 5 2020-03-30 2020-03-31 08:00:00 2
15 5 2020-03-30 2020-03-31 09:00:00 2
16 5 2020-03-30 2020-03-31 10:00:00 2
17 5 2020-03-30 2020-03-31 11:00:00 2
Моя цель - получить все данные в период с 7:00 до 12:00.
В моем коде php я передаю параметр, который является current_date (предположим, что сегодня 30 марта) для этого дня. Так что я могу поместить его в мое предложение where в моем запросе к базе данных.
$shift_date = '';
$shift_date = ($shift_date != '') ?
DateTime::createFromFormat('m-d-Y', $shift_date, new DateTimeZone('Asia/Manila')) :
DateTime::createFromFormat('Y-m-d', date("Y-m-d"), new DateTimeZone('Asia/Manila'));
$current_hour = DateTime::createFromFormat('Y-m-d H:i:s', $shift_date->format('Y-m-d') .' 19:00:00', new DateTimeZone('Asia/Manila'));
//2020-03-30 19:00:00
И это мой запрос, с этим запросом у меня нет проблем с получением данных, потому что это все еще 30 марта.
SELECT value,time,current_date,group
FROM table
WHERE time >='2020-03-30 19:00:00' AND time <= DATE_ADD("2020-03-30 19:00:00", INTERVAL 16 HOUR)
AND group = 2;
Дилемма, с которой я столкнулся, заключается в том, что если дата достигнет 2020-03-31 :00:00:00
, тогда эта строка кода в моем php будет иметь значение 2020-03-31: 19:00:00
, тогда я не получу данные, которые я хочу.
$shift_date = '';
$shift_date = ($shift_date != '') ?
DateTime::createFromFormat('m-d-Y', $shift_date, new DateTimeZone('Asia/Manila')) :
DateTime::createFromFormat('Y-m-d', date("Y-m-d"), new DateTimeZone('Asia/Manila'));
$current_hour = DateTime::createFromFormat('Y-m-d H:i:s', $shift_date->format('Y-m-d') .' 19:00:00', new DateTimeZone('Asia/Manila'));
//2020-03-31 19:00:00
Я все еще должен получить необходимые мне данные с 30 марта 19:00 до 31 марта 11 часов. Я действительно застрял с этой проблемой, которая у меня есть. Спасибо за всю предварительную помощь, которая даст мне время, чтобы помочь мне в этом.