Как сопоставить дату и время вместе в MySQL / Stack Overflow

Date 1 :- 2014-09-27 10:00:00
Date 2 :- 2014-09-29 11:00:00

Этот диапазон хранится в базе данных, и это означает, что пользователь указал диапазон времени в течение 2 дней с 27 до 29 и с 27 -> 10:00:00 до 29 -> 11:00:00. Это означает, что пользователь будет доступен с 10 до 11 утра с 27 по 29 2014 года.

Теперь, если я передам 2014-09-28 13:00:00, который находится в диапазоне дат, а также во временном диапазоне, потому что пользователь указал весь день для него, как видно из диапазона.

SELECT * FROM TABLE_NAME WHERE Id = $Id AND DATE('$currentDate') BETWEEN DATE(From_DateTime) AND DATE(To_DateTime) AND TIME('$timeHour') BETWEEN TIME(From_DateTime) AND TIME(To_DateTime)

From_DateTime = Date1
To_DateTime = Date2
currentDate = 2014-09-28
timeHour = 13:00:00

Теперь проблема в том, что логически переданный параметр находится в пределах диапазона, но при использовании запроса его нет, потому что во ВРЕМЕНИ не проверяется дата, 13 не находится между 10 & 11 так что не работает. Я также попробовал DATETIME, но он не работает, так как выдает ошибку.

Мне нужен способ сопоставить дату & время как в одно и то же время. Любой, имеющий какие-либо предложения. Я использую PHP в качестве языка программирования.

0

Решение

Если значения хранятся в формате DATETIME, как этот формат, который вы упомянули

Date 1 :- 2014-09-27 10:00:00
Date 2 :- 2014-09-29 11:00:00

Тогда вам даже не нужна вся эта сложность. Просто используйте обычные операторы сравнения

SELECT * FROM yourTABLE
WHERE startDate >= '2014-09-27 13:00:00'
AND endDate <= '2014-09-29 10:00:00'

Конечно, вы можете использовать ваши переменные PHP вместо дат тестирования, которые у меня есть в запросе. Вы можете отформатировать ваши значения PHP, чтобы они соответствовали формату даты и времени MySQL.

2

Другие решения

Если вы ожидаете большой результат или большую базу данных, я бы предложил вам использовать «МЕЖДУ».
Но хотелось бы уточнить, в вашей схеме базы данных есть 2 поля для сравнения? А именно «To_DateTime» и «From_DateTime»? Если так, я поддержал ответ Хэнки.

0

По вопросам рекламы [email protected]