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