dotaz na polozku typu timestamp v pgsql
Karel Zak
zakkr na zf.jcu.cz
Pondělí Září 16 08:25:46 CEST 2002
On Sat, Sep 14, 2002 at 12:01:39AM +0200, Jiri Chaloupka wrote:
> Zdravim,
> potrebuji vytahnout z tabulky v pgsql (7.2) zaznamy vztahujici se k urcitemu
> mesici.
> V one tabulce je sloupec typu timestamp.
>
> Zkousel jsem tedy po vzoru tahani dat k urcitemu dni psat
> select * from table where date like '2002-09' ale to nefunguje (nejak jsem se
> domnival, ze u tohoto datoveho typu mi bude rozumet.
Like je operator, ktery pracuje s textem.
> V manualu jsem nalezl klauzuly
> WHERE s.date > CURRENT_DATE - INTERVAL '4 weeks'
> ale ta mi da aktualni datum minus 4 tydny.
Todle je asi o necem jinem nez chcete.
> Existuje jiny zpusob (=rychlejsi) nez dopocitavat zacatek a konec mesice a pak
> davat
> where date between '2002-09-01' and '2002-09-31'?
1/
extract(month from muj_slopec) = cislo_pozadovaneho_mesice AND
extract(year from muj_slopec) = cislo_pozadovaneho_roku
2/
to_char(muj_slopec, 'YYYY-MM') = '2002-09'
Zkuste oboje, mozna ze 2/ bude rychlejsi (jsme totiz desne sikovnej
programator :-)))
O pouziti indexu v tomto pripade dost pochybuji.
Karel
--
Karel Zak <zakkr na zf.jcu.cz>
http://home.zf.jcu.cz/~zakkr/
C, PostgreSQL, PHP, WWW, http://docs.linux.cz, http://mape.jcu.cz
Další informace o konferenci Databases