непонятность с выборкой по дате

delta9

Guest
непонятность с выборкой по дате

добрый день всем.
есть запрос:
select * from table where date_field ~~ '2004-12-%';

При использовании pgadmin3(1.2.0) -
запрос выполняется.
если сделать :
PHP:
EXPLAIN select * from table where date_field ~~ '2004-12-%';
то увидим :
PHP:
Filter ((date_field)::text ~~ '2004-12-%'::text)
при использовании того-же запроса в php(4.3.5) не получаем ничего...

Кто-нть сталкивался с подобным?
И как можно не используя LIKE сделать нестрогую выборку по дате?

Заранее спасибо
 

neko

tеam neko
я непонимаю что за нестрогая выборка?
записи за декабрь чтоли выбрать??

between чем-то неустраивает?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: delta9
при использовании того-же запроса в php(4.3.5) не получаем ничего...
Какого ещё "того же"? Запроса EXPLAIN?

И как можно не используя LIKE сделать нестрогую выборку по дате?
Если бы вопрос был нормально сформулирован --- вместо какой-то "нестрогой выборки" была "выборка за месяц", --- то ответ на него ты бы сам нашёл значительно быстрее.

Как вариант:
Код:
... WHERE date_trunc('month', date_field) = '2004-12-01';
 

delta9

Guest
Автор оригинала: Sad Spirit
Какого ещё "того же"? Запроса EXPLAIN?
смешная шутка:) - нет конечно-же: без EXPLAIN
Если бы вопрос был нормально сформулирован --- вместо какой-то "нестрогой выборки" была "выборка за месяц", --- то ответ на него ты бы сам нашёл значительно быстрее.
выборка за месяц никому не интересна :)
надо например найти данные за 15-ое число неизвестно какого года и какого месяца или за октябрь по все годам

на самом деле проблема уже разрешилась.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: delta9
на самом деле проблема уже разрешилась.
неплохо было бы описать, каким именно образом она разрешилась, дабы потом посетители форума смогли найти решение.
 

delta9

Guest
я протупил с локализацией форматов даты - вместо ISO выбирал дату в German
- путаница между тем что есть, что вижу и что получаеться на самом деле:)
 

neko

tеam neko
вот интересно что будет быстрее
2 сравнения или трункация каждой записи
мерять лень :)
но по идее первое
 

arhip

Новичок
А мне что-то не нравятся все эти локали. Привык пользоваться to_char(), to_timestamp(). Кстати, можно было еще и так сделать: нужен поиск по месяцу марту:
where date_part('month', column) = 3

и т.д. в том же духе.
 
Сверху