PostgreSQL a LC_TIME

Karel Zak zakkr na zf.jcu.cz
Úterý Duben 5 16:57:17 CEST 2005


On Mon, 2005-04-04 at 20:57 +0200, Jan Kasprzak wrote:
> Honza Pazdziora wrote:
> : On Fri, Apr 01, 2005 at 09:37:36PM +0200, Jan Kasprzak wrote:
> : > 
> : > muzu nejak ovlivnit chovani funkce to_char(timestamp, fmt) podle
> : > pozadovane lokalizace? At uz nejakym SQL prikazem nebo promennou
> : > prostredi na klientovi. Ne pri vytvareni databaze jako globalni vec,
> : > ale pro kazdeho klienta zvlast. Chapu ze u kodovani a trideni
> : > to nejde, ale u formatu casu by to jit mohlo. Jde to?
> : 
> : No, pokud nic nenajdes a nebudes si chtit napsat vlastni funkci, kde
> : to bude natvrdo, a budes mit porad pocit, ze chces, aby Ti tohle delal
> : databazovy server (misto prezentacni vrstvy, nebo tak), a budes to
> : chtit delat pomoci locales (uz z teto rady podminek plyne, ze dost
> : pochybuji o uzitecnosti takove funkce ;-) asi se muzes inspirovat
> : v tom zminenem razeni podle uzivatelsky volenych locales,
> : 
> : 	http://www.fi.muni.cz/~adelton/l10n/#postgresql-nls-string
> 
> 	No, hlavne mi prijde, ze pokud z databaze leze datum
> jako string podle locale te databaze, tak s tim uz vubec nemuzu nic delat.

Temer vse z/do databaze je string.

> Takze kdyz uz na ta data musim v databasi sahat, tak proc ne rovnou
> do cilove podoby? 

Protoze to nemusi byt snadne. DB potrebuje pro svuj beh nejake presne
definovane locales v kterych ma indexy. Prepinani mezi ruznymi locales
podle potreb (ruzne indexy, ruzne formatovane vystupy apod.) je neco co
neni implementovane (protoze to vubec neni trivialni). Ono myslet si, ze
zavolam setlocale() milionkrat za jeden SQL dotaz je proste blby
napad... :-)

> Samozrejme systemovejsi by bylo, kdybych mohl databazi
> (DBD::Pg, libpg nebo komu) rict at mi vraci vsechny casy jako pocet
> sekund od epochy (aniz bych se s tim musel v kazdem selectu vypisovat
> a myslet na to). Ale jde mi o to jak to udelat aniz bych musel na toto
> nejak zvlast myslet. Pokud uz budu muset volat v kazdem selectu funkci,
> tak to uz rovnou zvolim konverzi do prezentacniho formatu.

 Pokud lze na backendu tu konverzi provadet tak ano. V tomto pripade to
to nelze. 

	Karel

-- 
Karel Zak <zakkr na zf.jcu.cz>



Další informace o konferenci Test