Обсуждение: lc_time not working?
Hi All,
please advise
I'm not getting my PostgreSQL 9.2 to return the correct lc_time
See psql output below.
lc_monetary and the lc's do work correctly
postgresql.conf is set to lc_time = 'nl_NL'
the output of locale -a includes nl_NL
[root@d01 ~]# psql db user
psql (9.2.1)
Type "help" for help.
openwave001=# select set_config('lc_time', 'nl_NL', true);
set_config
------------
nl_NL
(1 row)
openwave001=# select to_char(now(),'dd month day yyyy');
to_char
-----------------------------
07 january monday 2013
(1 row)
On 01/07/2013 06:45 AM, J. Hondius wrote:
> Hi All,
> please advise
>
> I'm not getting my PostgreSQL 9.2 to return the correct lc_time
> See psql output below.
> lc_monetary and the lc's do work correctly
>
> postgresql.conf is set to lc_time = 'nl_NL'
> the output of locale -a includes nl_NL
>
> [root@d01 ~]# psql db user
> psql (9.2.1)
> Type "help" for help.
>
> openwave001=# select set_config('lc_time', 'nl_NL', true);
> set_config
> ------------
> nl_NL
> (1 row)
When you use true it only applies for that transaction.
Example:
test=# select set_config('lc_time', 'nl_NL', True);
set_config
------------
nl_NL
(1 row)
test=# SELECT current_setting('lc_time');
current_setting
-----------------
en_US.UTF-8
(1 row)
When you false it sticks for the session:
test=# select set_config('lc_time', 'nl_NL', False);
set_config
------------
nl_NL
(1 row)
test=# SELECT current_setting('lc_time');
current_setting
-----------------
nl_NL
>
> openwave001=# select to_char(now(),'dd month day yyyy');
> to_char
> -----------------------------
> 07 january monday 2013
> (1 row)
>
>
>
--
Adrian Klaver
adrian.klaver@gmail.com
Adrian Klaver <adrian.klaver@gmail.com> writes:
> On 01/07/2013 06:45 AM, J. Hondius wrote:
>> I'm not getting my PostgreSQL 9.2 to return the correct lc_time
>> openwave001=# select set_config('lc_time', 'nl_NL', true);
> When you use true it only applies for that transaction.
But he has the same setting in postgresql.conf anyway. I think the real
mistake is here:
>> openwave001=# select to_char(now(),'dd month day yyyy');
To get localized month/day names you need to add the TM prefix to the
field, ie this should be
select to_char(now(),'dd tmmonth tmday yyyy');
regards, tom lane
On 01/07/2013 07:56 AM, Tom Lane wrote:
> Adrian Klaver <adrian.klaver@gmail.com> writes:
>> On 01/07/2013 06:45 AM, J. Hondius wrote:
>>> I'm not getting my PostgreSQL 9.2 to return the correct lc_time
>
>>> openwave001=# select set_config('lc_time', 'nl_NL', true);
>
>> When you use true it only applies for that transaction.
>
> But he has the same setting in postgresql.conf anyway. I think the real
> mistake is here:
>
>>> openwave001=# select to_char(now(),'dd month day yyyy');
>
> To get localized month/day names you need to add the TM prefix to the
> field, ie this should be
>
> select to_char(now(),'dd tmmonth tmday yyyy');
Aargh, missed that.
>
> regards, tom lane
>
>
--
Adrian Klaver
adrian.klaver@gmail.com
Thanks very much Tom and Adrian.
Solved. I will RTFM better next time.
Thanks again, Joek
Adrian Klaver schreef:
> On 01/07/2013 07:56 AM, Tom Lane wrote:
>> Adrian Klaver <adrian.klaver@gmail.com> writes:
>>> On 01/07/2013 06:45 AM, J. Hondius wrote:
>>>> I'm not getting my PostgreSQL 9.2 to return the correct lc_time
>>
>>>> openwave001=# select set_config('lc_time', 'nl_NL', true);
>>
>>> When you use true it only applies for that transaction.
>>
>> But he has the same setting in postgresql.conf anyway. I think the real
>> mistake is here:
>>
>>>> openwave001=# select to_char(now(),'dd month day yyyy');
>>
>> To get localized month/day names you need to add the TM prefix to the
>> field, ie this should be
>>
>> select to_char(now(),'dd tmmonth tmday yyyy');
>
> Aargh, missed that.
>
>>
>> regards, tom lane
>>
>>
>
>