Поиск записей по периоду даты

goacher

Новичок
Поиск записей по периоду даты

есть база в ней есть поля d1, d2 и d3 (это день, месяц и год)
и форма С __ __ ____ ПО __ __ ____
Как выполнить mysql запрос чтобы он находил все записи с периода С до периода ПО.
Проблема в том, что это даты...

Заранее благодарен
 

Adelf

Administrator
Команда форума
тебе еще в прошлой твоей теме говорили - храни данные нормально.
В БД дату хранят в специальных типах для даты и времени.
Можно даже в целочисленном виде хранить(секунды с "начала времен") - это в любом случае лучше, чем в трех полях.
 

damngood

Мозг был, но ушел...
ну как вариант конкатенируй свои эти d1, d2 и d3, приводи к числу, потом делай запрос с BETWEEN.

Но так даты никто не хранит
 

damngood

Мозг был, но ушел...
Есть такое понятие как конкатенация строк, под которым подразумевается операция, в результате которой из двух строк получается одна.

Имеет строки 2009, 11 и 26 а после конкатенации (читай склеивания, соединения) получим 20091126 - что есть конкатенированная строка, которая и есть решение твоей проблемы.
 

Adelf

Administrator
Команда форума
damngood
У нет чувства, что ты только что сделал мир хуже? :)
 

goacher

Новичок
а как это в запросе сделать

WHERE concat('d1','d2','d3')>'".$d3.$d2.$d1."' and concat('d1','d2','d3')<'".$d4.$d5.$d6."' - так?
 

damngood

Мозг был, но ушел...
Adelf
нет =) Потому, что потом придут нормальные люди ко мне и я скажу как надо делать. И за денежку помогу переделать тот бардак, что наклепают до меня менее организованные ребята.

goacher
Ключевое слово BETWEEN или < и >
 

goacher

Новичок
WHERE concat('d1','d2','d3')>'".$d3.$d2.$d1."' and concat('d1','d2','d3')<'".$d4.$d5.$d6."' - такой получился
 

damngood

Мозг был, но ушел...
Ничего, все потом приходят к тому, что сначала надо думать как данные хранить, а уже потом забивать ими БД. Или не приходят...
 
Сверху