Выборка по полю типа DATE

mr.GOD

Новичок
Выборка по полю типа DATE

Мне нужно получить выборку по запросу между двумя датами
,т.е следующий запрос :
$query="SELECT * FROM TABLE WHERE date>='$some_date' ";
сравнивает их не как даты , а просто как строковые переменные или по крайней мере у меня так :) ,подскажите что неверно делаю или может есть какой-то специальный способ чтобы получить выборку между двумя датами именно в формате date.

Спасибо.
 

Фанат

oncle terrible
Команда форума
а какая проблема в сравнении дат, как строк?
ты первый, у кого такая проблема
приведи пример неправильного, по твоему мнению, сравнения

-~{}~ 14.05.04 09:59:

скерее всего, твоя $some_date не соответствут формату
делай ее в
именно в формате date
 

rudik

Developer
SELECT * FROM TABLE WHERE UNIX_TIMESTAMP(date) >= $date

IMHO не стоит конвертировать твою переменную $date в строку сравнивай как два числа.
 

Three Daws

Guest
В каком виде (формате) значение $some_date?

Самым наглядным, правильным и корректным для сравнения будет американский формат представления даты:
YYYY-MM-DD
где
YYYY - год, в виде 4-х цифр
MM - месяц, в виде 2-х чисел с префиксом "0" при необходимости.
DD - число, в виде 2-х чисел с префиксом "0" при необходимости.

Или производная от него, вида YYYYMMDD

Такое "написание" всегда позволяет точно сравнивать даты.

В MySQL есть ф-ия DATE_FORMAT(date,format), которую можно использовать для принудительного указания представления даты.

Код:
mysql> select DATE_FORMAT(now(), '%Y%m%d);
            ->'20040514'

mysql> select DATE_FORMAT(now(), '%Y-%m-%d);
            ->'2004-05-14'
Основной вопрос - в каком виде попадает в SQL вопрос дата, с которой Вы сравниваете, откуда берется и как, где и каким образом ее лучше преобразовать к приемлемому для сравнения виду.
 

mr.GOD

Новичок
У меня $some_date в формате data в таком же , какой предусмотрен в mysql - yyyy-mm-dd(по мойму так там) ну вообщем точно в формате mysql date.

т.е. мне нужно выбрать из таблицы записи меджу двумя промежутками времени .Т.е. отобрать все записи сделанные за месяц например .


SELECT * FROM TABLE WHERE UNIX_TIMESTAMP(date) >= $date
попробую вот этот вариант.
 

Фанат

oncle terrible
Команда форума
У меня $some_date в формате data в таком же , какой предусмотрен в mysql - yyyy-mm-dd(по мойму так там) ну вообщем точно в формате mysql date.
значит, у тебя все сравнивает нормально.
если нет,то или ПРИВЕДИ пример, или ищи другое место для чесания языка.
попробую вот этот вариант.
ну-ну.
вместо того, чтобы разобраться, будем пробовать всякую гадость, которую суют люди, которыые не поняли вопроса.
это же легче чем мозгом думать - правда?
 

mr.GOD

Новичок
Спасибо разберусь.Но во-первых я не "чешу языком"!
Во-вторых я как небудь сам разберусь где и что мне писать ;)
 

Фанат

oncle terrible
Команда форума
я не "чешу языком"!
ошибка.
именно чешешь.
тебе сказали - ПРИВЕДИ ПРИМЕР неправильной сортировки.
без него твои заявления - именно пустопорожнее чесание языком.
Если у всех сортировка работает нормально, а у тебя - нет, значит, проблема в ТЕБЕ
И чтобы ее исправить, надо увидеть твой кривой код.
Кода ты не приводишь - значит и смысла с тобой общаться нет.
сам разберусь где и что мне писать
это без проблем.
можешь, например, написать свой вопрос у себя в ванной.
с твоми способностями к коммуникации это принесет столько же пользы.
 
Сверху