SELECT FROM WHERE time_begin <= '00:00:00' AND time_end >= '03:00:00'
Но не работает.
Спустя 1 час, 43 минуты, 52 секунды (7.02.2011 - 19:58) philimon написал(а):
Вот такое условие работает:
но, думаю, есть другой вариант. Может условие between, хотя у меня не получилось
WHERE (time_begin < '03:00:00' AND (time_end >= '03:00:00' OR time_end > '00:00:00'))
но, думаю, есть другой вариант. Может условие between, хотя у меня не получилось
Спустя 27 секунд (7.02.2011 - 19:59) jetistyum написал(а):
SELECT FROM WHERE
точно не будет работать а вот
select '02:00:00' between '00:00:00' and '05:00:00';
работает отлично
Спустя 2 часа, 11 минут, 56 секунд (7.02.2011 - 22:10) philimon написал(а):
Цитата (jetistyum @ 7.02.2011 - 16:59) |
<pre class="sh_sourceCode" rel="sql"><span class="sh_keyword">SELECT FROM WHERE</span></pre> точно не будет работать а вот <pre class="sh_sourceCode" rel="sql"><span class="sh_keyword">select</span> <span class="sh_string">'02:00:00'</span> <span class="sh_keyword">between</span> <span class="sh_string">'00:00:00'</span> <span class="sh_keyword">and</span> <span class="sh_string">'05:00:00'</span><span class="sh_symbol">;</span></pre> работает отлично |
Совершенно неправильно работает, если, конечно, я правильно понял синтаксис:
time_begin BETWEEN '00:00:00' AND '03:00:00'
и так тоже неверный результат:
time_begin AND time_end BETWEEN '00:00:00' AND '03:00:00'
time_begin не обязательно должен начинаться в 00:00, может и раньше или в промежутке от 00:00 до 02:00, а time_end, соответственно, может заканчиваться не в 03:00, а в 01:00 или более
Спустя 6 часов, 11 минут, 35 секунд (8.02.2011 - 04:22) jetistyum написал(а):
не обратил внимания что у тебя два поля. тогда BETWEEN не катит.
Твой запрос должен работать
SELECT * FROM table WHERE time_begin <= '00:00:00' AND time_end >= '03:00:00'
покажи какая ошибка возвращается, покажи свою базу данных
Твой запрос должен работать
SELECT * FROM table WHERE time_begin <= '00:00:00' AND time_end >= '03:00:00'
покажи какая ошибка возвращается, покажи свою базу данных
Спустя 5 часов, 15 минут, 48 секунд (8.02.2011 - 09:38) linker написал(а):
SELECT ... FROM ... WHERE begin BETWEEN ...AND end BETWEEN ...
Спустя 12 часов, 14 минут, 46 секунд (8.02.2011 - 21:53) philimon написал(а):
jetistyum
Приведу пример записей в БД:
Из этого видно, что время с 14:00 до 17:00 уже занято, а мне нужно проверить, занято ли время с, допустим, 13:00 до 15:00. Получается, что запрос
Не отработает точно(вернет пустое значение) потому что time_begin <= '13:00:00', т.е. time_begin никак не совпадает с 14:00.
По этому же не отработает и запрос linker.
Спасибо всем Вам за поддержку, но мой запрос из второго поста учитывает все эти нюансы:
Приведу пример записей в БД:
id | time_begin | time_end
1 | 14:00:00 | 17:00:00
Из этого видно, что время с 14:00 до 17:00 уже занято, а мне нужно проверить, занято ли время с, допустим, 13:00 до 15:00. Получается, что запрос
SELECT * FROM table WHERE time_begin <= '13:00:00' AND time_end >= '15:00:00'
Не отработает точно(вернет пустое значение) потому что time_begin <= '13:00:00', т.е. time_begin никак не совпадает с 14:00.
По этому же не отработает и запрос linker.
Спасибо всем Вам за поддержку, но мой запрос из второго поста учитывает все эти нюансы:
WHERE (time_begin < '15:00:00' AND (time_end >= '15:00:00' OR time_end > '13:00:00'))
Спустя 2 часа, 18 минут, 43 секунды (9.02.2011 - 00:11) linker написал(а):
philimon
Ну вообще-то тут коллизия, занятое время с 14 до 17, а тебе надо с 13 до 15, но время-то с 14 до 15 занято, потому запрос все верное вернул. Подумай еще.
Ну вообще-то тут коллизия, занятое время с 14 до 17, а тебе надо с 13 до 15, но время-то с 14 до 15 занято, потому запрос все верное вернул. Подумай еще.
Спустя 14 часов, 54 минуты, 43 секунды (9.02.2011 - 15:06) Guest написал(а):
philimon, твой запрос 100% верен, только упрости его немного.
Намек: (a > 3 OR a >= 5) тождественно равно (a > 3)
Намек: (a > 3 OR a >= 5) тождественно равно (a > 3)