ďťż
 
[postgresql] to_char : dziwne dzialanie formatowania ďťż
 
[postgresql] to_char : dziwne dzialanie formatowania
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[postgresql] to_char : dziwne dzialanie formatowania



koval - 12-09-2006 01:00
[postgresql] to_char : dziwne dzialanie formatowania
  postgres 8.1.4 :

select to_char(12345678.99,'999G999G999D99');
to_char
-----------------
12,345,678,99
(1 row)

dlaczego decimal separator i group separator sa takie same ???





- 12-09-2006 01:00

  koval napisał(a):
> postgres 8.1.4 :
>
> select to_char(12345678.99,'999G999G999D99');
> to_char
> -----------------
> 12,345,678,99
> (1 row)
>
> dlaczego decimal separator i group separator sa takie same ???

Dlatego, ze w Twoim systemie znak decimal to przecinek.

Pozdrawiam.




koval - 12-09-2006 01:00

  <> wrote:
> koval napisał(a):
>> postgres 8.1.4 :
>>
>> select to_char(12345678.99,'999G999G999D99');
>> to_char
>> -----------------
>> 12,345,678,99
>> (1 row)
>>
>> dlaczego decimal separator i group separator sa takie same ???
>
> Dlatego, ze w Twoim systemie znak decimal to przecinek.
>
> Pozdrawiam.
postgresql kompilowany ze zrodel, z opcja --enable-locale, co jeszcze
trzeba zrobic, moze o czyms nie wiem ?




koval - 12-09-2006 01:00

  dodam jeszcze, ze przeszukiwanie google z ciekawszych rzeczy dalo tylko to:

http://tiny.pl/7pm1

, watek jest z 2004 roku, nie chce mi sie wierzyc ze nadal nie jest to
naprawione (?)





koval - 12-09-2006 01:00

  i jeszcze raz sobie odpowiem - wydaje sie ze problemem jest nie to, ze w
moim systemie znakiem separatora grup jest przecinek, tylko to ze go
wcale nie ma! :

bash-3.00$ locale -k LC_NUMERIC

decimal_point=","
thousands_sep=""
grouping=-1;-1
numeric-decimal-point-wc=44
numeric-thousands-sep-wc=0
numeric-codeset="ISO-8859-2"

teraz tylko pytanie jak to zmienic ??? :)




Paweł Matejski - 12-09-2006 01:00

  koval wrote:
> i jeszcze raz sobie odpowiem - wydaje sie ze problemem jest nie to, ze w
> moim systemie znakiem separatora grup jest przecinek, tylko to ze go
> wcale nie ma! :
>
> bash-3.00$ locale -k LC_NUMERIC
>
> decimal_point=","
> thousands_sep=""
> grouping=-1;-1
> numeric-decimal-point-wc=44
> numeric-thousands-sep-wc=0
> numeric-codeset="ISO-8859-2"
>
> teraz tylko pytanie jak to zmienic ??? :)

madej=> SHOW lc_numeric ;
lc_numeric
------------
pl_PL
(1 row)

madej=> select to_char(12345678.99,'999G999G999D99');
to_char
-----------------
12,345,678,99
(1 row)

madej=> set lc_numeric = 'en_US';
SET
madej=> select to_char(12345678.99,'999G999G999D99');
to_char
-----------------
12,345,678.99
(1 row)

Wygląda na to, że to_char źle interpretuje brak znaku 'grouping'.

Po małej edycji locali można uzyskać coś takiego:

madej=> SHOW lc_numeric ;
lc_numeric
------------
pl_PL
(1 row)

madej=> select to_char(12345678.99,'999G999G999D99');
to_char
-----------------
12 345 678,99
(1 row)

Z tym, że z moich prób wynika, że bawić się trzeba localami na serwerze. Choć
klienta i serwer mam na tym samym komputerze, to pozwolił ustawić en_US jak i
uwzględniał zmiany w localach, dopiero po restarcie serwera.

P.S. Bawiłem sie na debianie etch.

--
P.M.




Bartek Siebab - 13-09-2006 02:06

  > Paweł Matejski w dniu 2006-09-11 17:31 pisze:
> koval wrote:
>> i jeszcze raz sobie odpowiem - wydaje sie ze problemem jest nie to, ze w
>> moim systemie znakiem separatora grup jest przecinek, tylko to ze go
>> wcale nie ma! :
>>
>> bash-3.00$ locale -k LC_NUMERIC
>>
>> decimal_point=","
>> thousands_sep=""
>> grouping=-1;-1
>> numeric-decimal-point-wc=44
>> numeric-thousands-sep-wc=0
>> numeric-codeset="ISO-8859-2"

tak samo na Fedora 5

> Z tym, że z moich prób wynika, że bawić się trzeba localami na serwerze. Choć
> klienta i serwer mam na tym samym komputerze, to pozwolił ustawić en_US jak i
> uwzględniał zmiany w localach, dopiero po restarcie serwera.
>
> P.S. Bawiłem sie na debianie etch.
>

identycznie jest na Fedora 5 -> postgres źle traktuje LC_NUMERIC gdy
separatora tysięcy nie ma -> czyżby bug? czy też taki feczer...

--
..---------- -------- ------ ---- ---- --- - -- -
| Bartek `saphire` Siebab http://bartek.siebab.net




koval - 14-09-2006 00:09

  Bartek Siebab wrote:
> > Paweł Matejski w dniu 2006-09-11 17:31 pisze:
>> koval wrote:
>>> i jeszcze raz sobie odpowiem - wydaje sie ze problemem jest nie to, ze w
>>> moim systemie znakiem separatora grup jest przecinek, tylko to ze go
>>> wcale nie ma! :
>>>
>>> bash-3.00$ locale -k LC_NUMERIC
>>>
>>> decimal_point=","
>>> thousands_sep=""
>>> grouping=-1;-1
>>> numeric-decimal-point-wc=44
>>> numeric-thousands-sep-wc=0
>>> numeric-codeset="ISO-8859-2"
>
> tak samo na Fedora 5
>
>> Z tym, że z moich prób wynika, że bawić się trzeba localami na
>> serwerze. Choć
>> klienta i serwer mam na tym samym komputerze, to pozwolił ustawić
>> en_US jak i
>> uwzględniał zmiany w localach, dopiero po restarcie serwera.
>>
>> P.S. Bawiłem sie na debianie etch.
>>
>
> identycznie jest na Fedora 5 -> postgres źle traktuje LC_NUMERIC gdy
> separatora tysięcy nie ma -> czyżby bug? czy też taki feczer...
>
coz, postgres jak widac w przypadku braku separatora tysiecznego
posluguje sie separatorem dziesietnym ... to raczej feature ;)

natomiast ciekawe dlaczego tak jest w samym systemie - to samo
zaobserwowalem na gentoo i slackware ...
dziwne, prawda ?
W takim de_DE wszystko jest cacy, a juz w pl_PL nie.
Ktos zapomnial, czy to celowe dzialanie ?




koval - 11-11-2006 00:51

  gdyby ktos chcial zmieniac w systemuie to pomocny moze byc link:
http://gentoo-wiki.com/HOWTO_localedef#Using_localedef

oczywiscie nie zmieniamy formatu wyswietlania daty a jedynie definicje w
bloku LC_NUMERIC :

LC_NUMERIC
decimal_point "<U002C>"
thousands_sep "<U002E>"
grouping 3;3
END LC_NUMERIC
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [PostgreSQL] - jak =?ISO-8859-2?Q?zabezpieczy=E6_interesy_tw?==?ISO-8859-2?Q?=F3rcy_systemu_=3F=3F=3F?= postgresql - int/int postgresql Select count(*) czy raczej Select count(ID) [PostgreSQL] jak =?ISO-8859-2?Q?pobra=E6_warto=B6=E6_zwracan?==?ISO-8859-2?Q?=B1_przez_funkcj=EA=3F?= [postgresql] INSERT OR UPDATE - jak =?ISO-8859-2?Q?b=EAdzie_na?==?ISO-8859-2?Q?jlepiej=3F?= [postgresql] kilka =?ISO-8859-2?Q?rekord=F3w_subquery_jako_?==?ISO-8859-2?Q?string?= [PostgreSQL] Jak =?ISO-8859-2?Q?po=B3=B1czy=E6_funkcje_z_w?==?ISO-8859-2?Q?idokiem?= Postgres - replikcja master-master Dopasowanie do "najlepszego" dopasowania :) [ PostgreSQL] Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • melooonka.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com