Обсуждение: How to get localized to_char(DATE) output

Поиск
Список
Период
Сортировка

How to get localized to_char(DATE) output

От
Thomas Kellerer
Дата:
Hi,

I'm trying to get the output of the to_char(date, text) method in German but I can't get it to work:

My understanding is, that I need to set lc_time for the session in order to change the language used by to_char(), but
thisdoes not seem to work for me:
 

postgres=> select version();                           version
------------------------------------------------------------- PostgreSQL 8.4.3, compiled by Visual C++ build 1400,
32-bit
(1 Zeile)

postgres=> select to_char(current_date, 'Mon'); to_char
--------- May
(1 Zeile)

postgres=> set lc_time = 'German';
SET
postgres=> select to_char(current_date, 'Mon'); to_char
--------- May
(1 Zeile)

postgres=>

Postgres' messages are in German, but not the output of to_char()

After changing lc_time to 'German' I would have expected 'Mai' instead of 'May'

What am I mising?

Regards
Thomas



Re: How to get localized to_char(DATE) output

От
Tom Lane
Дата:
Thomas Kellerer <spam_eater@gmx.net> writes:
> I'm trying to get the output of the to_char(date, text) method in German but I can't get it to work:

I think you need 'TMMon' to get a localized month name.
        regards, tom lane


Re: How to get localized to_char(DATE) output

От
Thomas Kellerer
Дата:
Tom Lane, 06.05.2010 00:51:
> Thomas Kellerer<spam_eater@gmx.net>  writes:
>> I'm trying to get the output of the to_char(date, text) method in German but I can't get it to work:
>
> I think you need 'TMMon' to get a localized month name.
>
>             regards, tom lane
>
Ah! Silly me. Now that you write this I can see it in the manual ;)

The manual says the value for lc_time is OS dependent and indeed "set lc_time = 'German'" does not work on Solaris.

Is there a way to get a list of allowed values for lc_time for a specific installation?

Thanks for your help

Thomas 






Re: How to get localized to_char(DATE) output

От
Jasen Betts
Дата:
On 2010-05-06, Thomas Kellerer <spam_eater@gmx.net> wrote:
> Tom Lane, 06.05.2010 00:51:
>> Thomas Kellerer<spam_eater@gmx.net>  writes:
>>> I'm trying to get the output of the to_char(date, text) method in German but I can't get it to work:
>>
>> I think you need 'TMMon' to get a localized month name.
>>
>>             regards, tom lane
>>
> Ah! Silly me. Now that you write this I can see it in the manual ;)
>
> The manual says the value for lc_time is OS dependent and indeed "set lc_time = 'German'" does not work on Solaris.
>
> Is there a way to get a list of allowed values for lc_time for a specific installation?

"man -k locale"  would be my starting point (for anything POSIXish)

Looks like "locale -a" does it on linux, that may be worth a try.

"de_DE" is the locale for German as used in Germany.




Re: How to get localized to_char(DATE) output

От
Thomas Kellerer
Дата:
Jasen Betts, 06.05.2010 11:57:
>> The manual says the value for lc_time is OS dependent and indeed "set lc_time = 'German'" does not work on Solaris.
>>
>> Is there a way to get a list of allowed values for lc_time for a specific installation?
>
> "man -k locale"  would be my starting point (for anything POSIXish)
>
> Looks like "locale -a" does it on linux, that may be worth a try.
>
> "de_DE" is the locale for German as used in Germany.
>
>
>
Thanks for the answer. Is there a way to get this information from within a SQL statement?

Regards
Thomas




Re: How to get localized to_char(DATE) output

От
Tom Lane
Дата:
Thomas Kellerer <spam_eater@gmx.net> writes:
> Jasen Betts, 06.05.2010 11:57:
>>> Is there a way to get a list of allowed values for lc_time for a specific installation?

>> Looks like "locale -a" does it on linux, that may be worth a try.

> Thanks for the answer. Is there a way to get this information from within a SQL statement?

No.  Postgres doesn't know anything about that.  "locale -a" should work
on pretty much any Unix-ish system, but I dunno what the equivalent on
Windows would be.
        regards, tom lane


Re: How to get localized to_char(DATE) output

От
Thomas Kellerer
Дата:
Tom Lane, 06.05.2010 16:22:
>>> Looks like "locale -a" does it on linux, that may be worth a try.
>
>> Thanks for the answer. Is there a way to get this information from within a SQL statement?
>
> No.  Postgres doesn't know anything about that.  "locale -a" should work
> on pretty much any Unix-ish system, but I dunno what the equivalent on
> Windows would be.
>

OK, thanks a lot

Regards
Thomas