dotaz na polozku typu timestamp v pgsql
Michal Kubecek
mike na mk-sys.cz
Sobota Září 14 00:58:38 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.
Možná kdybyste to převedl na řetězec, tj. něco jako
where cast(date as varchar(32)) like '2002-09%'
> Existuje jiny zpusob (=rychlejsi) nez dopocitavat zacatek a konec mesice a pak
> davat
> where date between '2002-09-01' and '2002-09-31'?
Jestli je to opravdu typ timestamp a ne date, pak by to spíš
mělo být
where date>='2002-09-01' and date<'2002-10-01'
Rychlejší asi nic nebude. Asi by šlo udělat si externí funkce
vracející z timestampu rok a měsíc a zkusit něco na způsob
where date_y(date)=2002 and date_m(date)=9
ale to samozřejmě bude pomalejší (nemůže využít případný index
a musí tu funkci volat pro každý záznam).
Michal Kubeček
Další informace o konferenci Test