MySQL выбрать на объекты даты и времени в пределах диапазона - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть таблица «Встречи», которая содержит, помимо прочего, два поля даты и времени, помеченных как «начало» и «конец».У меня также есть дата по местному времени, которая конвертируется как диапазон полного дня в UTC (что и в таблице SQL хранит datetime).Мне нужно выбрать все (рабочие) времена между 00:00:00 и 08:00:00 UTC, которые также попадают в диапазон моего местного перевода времени.

Например, пользователь в PST (стандартное тихоокеанское время) выбирает 1 декабря 2018 года. Даты между 1 декабря в 00:00:00 и 2 декабря 00:00:00 конвертируются в UTC, что будет1 декабря с 08:00:00 до 2 декабря с 08:00:00.Мне нужно выбрать все встречи между 00:00:00 и 8:00:00 любого дня в предыдущем диапазоне (декабрь 1 - декабрь 2).

Все мои datetime / запросы имеют вид 'гггг-ММ-дд ЧЧ: мм: сс'.

Я знаю, что могу выбрать все времена между двумя довольно простовот так:

SELECT start, end 
FROM appointment 
WHERE start>='2018-12-01 00:00:00' 
AND end<='2018-12-02 08:00:00'

Но я не уверен, как урезать их до рабочего времени.

Я ищу что-то вроде

SELECT start, end 
FROM appointment 
WHERE (start>='2018-12-01 00:00:00' 
AND end<='2018-12-02 08:00:00') 
AND (start.substring(11, start.end) >= '00:00:00' 
AND end.substring(11, end.end) <= '08:00:00')

Где вызов вроде start.substring (11, start.end) вернул бы время в формате «ЧЧ: мм: сс»

1 Ответ

0 голосов
/ 27 ноября 2018

Попробуйте использовать функцию TIME в MySQL.

SELECT start, end FROM appointment WHERE TIME(start) >= '00:00:00' AND TIME(end) <= '08:00:00' AND ... //other conditions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...