проблема с запросом в БД, где нужно взять поля у которых дата < $time

Spear

почемучка
проблема с запросом в БД, где нужно взять поля у которых дата < $time

Здравствуйте,
у меня такая проблема6
нужно вытащить из БД записи, в которых дата (поле 'time' формата datetime) меньше одной даты но больше другой.

Делаю так:

AND ('$DateOf1stDayOfWeek 00:00:00' < time < '$DateOfLastDayOfWeek 00:00:00')

получается такое:

AND ('30-05-2005 00:00:00' < time < '05-06-2005 00:00:00')

но это условие полностью игнорируется и берутся все записи из бд :(
подскажитЕ, пожалуйста - в чем я не прав?
 

Spear

почемучка
matross
всеравно не понял :( я уже этот мануал читал, и не один раз :( Та нигде нет пример с выбором между датами..
 

matross

Новичок
Spear
А ты внимательнее почитай, и примеры там есть, так что давай...
 

Spear

почемучка
matross
я по-твоему до этого чем занимался? Вместо ответа в док-цию любой направить может.
 

matross

Новичок
Spear
Я же тебе сказал посмотри внимательно примеры и немного подумай все.... Тебе дали ссылку, уверили в том, что там есть то, что тебе нужно, ИДИ И ЧИТАЙ!
 

alexhemp

Новичок
Spear

используй BETWEEN а не цепочку сравнений

т.е.
AND time BETWEEN '30-05-2005 00:00:00' AND '05-06-2005 00:00:00'
 

SelenIT

IT-лунатик :)
С каких пор MySQL стала понимать формат даты DD-MM-YYYY вместо привычного ей (и логичного для поразрядного сравнения) YYYY-MM-DD?
 

Spear

почемучка
SelenIT
вот ёптъ ))) точно! Спасибо! Блин ну я конечно протупил.. очень-очень! :) Спасибо. Сейчас исправлю, проверю..

-~{}~ 21.06.05 20:09:

AND (DATE_FORMAT(time,'%d-%m-%Y')>'30-05-2005')

тоже не работает :( Хотя по идее - должно.. вообще что-то с запросами не то творится.. Если например вписать другое число, скаже 01-06-2005 то может вівести записи за июнь и за апрель :confused:
 

SelenIT

IT-лунатик :)
Ну дык. Ты ж обычные строки сравниваешь. А что боьше при строковом сравнении - '31-01-1997' или '01-12-2008'?
 

Spear

почемучка
SelenIT
хм.. я думал мускул будет работать как с датой а не просто с числом.. так как же поступить теперь?
 

SelenIT

IT-лунатик :)
как же поступить теперь?
работать как с датой а не просто с числом..
p.s. ...неспроста же в стандартном формате даты сначала идут самые значимые компоненты - тогда порядок сортировки соблюдается и при числовом, и при строковом представлении.
 

Spear

почемучка
SelenIT
спасибо!
все работает:

AND (time >= '2005-06-27 00:00:00') AND(time <= '2005-07-03 00:00:00')
 
Сверху