[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: выборка заданого диапазона
gudzik
возник такой вопросик по MySQL...

есть простой селект

SELECT id,number,DATE_FORMAT(dates,'%d.%m.%Y') as dates FROM  waybill
WHERE dates BETWEEN DATE('2010-10-01') AND DATE('2010-10-10') order by number


в базе есть инфа с 1 по 10 число включительно, но в выборку 10 чило не попадает..., так и должно быть, или у меня чет не то с настройками...



Спустя 16 минут, 47 секунд (2.11.2010 - 16:27) aH6y написал(а):
gudzik
Условие между. Думаю следует исправить:
SELECT id, number, DATE_FORMAT(dates,'%d.%m.%Y') as dates FROM `waybill` WHERE dates BETWEEN DATE('2010-10-01') AND DATE('2010-10-11') ORDER BY number

Спустя 24 минуты, 27 секунд (2.11.2010 - 16:51) gudzik написал(а):
ну если ручками проставлять дату то конечно можно а если переменными то здесь уже начинаются танцы,

например, если в импут ввожу дату выборки и дата параметром передается в sql то здесь как быть?

я вышел из проблемы добавлением 1 к дате, но тепер не знаю не вылезет ли оно мне когда-нибудь боком...

Спустя 14 минут, 40 секунд (2.11.2010 - 17:06) sergeiss написал(а):
aH6y - условие "между" подразумевает включение указанных границ в поиск! Ты бы сначала хэлп прочитал бы, что ли, прежде чем советы давать такие...

Вопрос ТС: почему
 WHERE dates BETWEEN DATE('2010-10-01') AND DATE('2010-10-10')

а не
 WHERE dates BETWEEN '2010-10-01' AND '2010-10-10'

Спустя 8 минут, 9 секунд (2.11.2010 - 17:14) gudzik написал(а):
WHERE dates BETWEEN '2010-10-01' AND '2010-10-10'


результат не изменился

Спустя 7 минут, 39 секунд (2.11.2010 - 17:21) Adil написал(а):
дело скорее во времени. Попробуй так:
WHERE dates BETWEEN '2010-10-01' AND '2010-10-10  23:59:00'

Спустя 1 минута, 9 секунд (2.11.2010 - 17:23) gudzik написал(а):
решение найдено

WHERE  TO_DAYS(dates) BETWEEN   TO_DAYS('2010-11-01') AND   TO_DAYS('2010-11-02') ORDER BY number


все дело в том что формат даты в бызе "2010-10-01 09:37:34" и когда брать только "2010-10-01" то время сбрасывается в ноль а это наверное значит что этот день еще не наступил... но это только мои догадки и может это и не совсем правильно cool.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.