GROUP BY dle datetime?
Karel Zak
zakkr na zf.jcu.cz
Pátek Leden 19 14:52:08 CET 2001
On Fri, 19 Jan 2001, Ing. Pavel PaJaSoft Janousek wrote:
> > Nejak jsem jsem tento "bug-report" na Pgsql-bugs@ prehledl (hodne
> > veci ctu klavesou delete :-(. Kazdopadne je my jasne co bude odpoved.
> > To neni bug, to je feature.... now() == cas transakce
>
> Ufff, tak ted moc nerozumim...:
> 1. Transakction time jsem mel za to, ze je okamzik insertu (resp. kdy
> insert zpravuje back-end) a ne okamzik commitu...
Datum
now(PG_FUNCTION_ARGS)
{
Timestamp result;
AbsoluteTime sec;
sec = GetCurrentTransactionStartTime();
^^^^^^^^^^^^^^^^^^^^^
result = (sec - ((date2j(2000, 1, 1) - date2j(1970, 1, 1)) *
86400));
PG_RETURN_TIMESTAMP(result);
}
Mel by to byt cas 'BEGIN'.
> 2. now() u default delalo drive to, ze now() nebyl cas transakce, ale
> vsechny radky meli cas VYTVORENI tabulky, uz se now() takto nechova?
Urcite ne, je to cas vyse uvedene funkce
> 3. now() != 'now' pri default?
now() = 'now'::timestamp
... DEFAULT now() = ... DEFAULT 'now'
>
> > Za prve 'datetime' to zavani PostgreSQL < 7.0 :-((((, "my" uz tomu ted
> > rikame 'timestamp'.
>
> Mas pravdu...;-) - ja ze zvyku pouzivam pri create table datetime, ale
> pri pretypovani jiz ::timestamp..;-)
>
> Je nejaky rozdil mezi datetime a timestamp? Napr. velikost, presnost
> apod.?
Zadny rozdil, ale je to vice 'like SQL92' :-)
> > Pokud ty propocty vystaci s count(), avg() apod... tak to GROUP BY slo.
>
> Dekuji za priklady, ja tusil, ze bajecne funkce to_char a date_part
> prijdou ke slovu, jen jsem nevedel, ze az tak jednoduse...;-)
Svet _je_ jednoduchy :-)
Karel
Další informace o konferenci Databases