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 Test