Are SQL queries locale dependent?

Started by Martin Schäferabout 21 years ago2 messagesgeneral
Jump to latest
#1Martin Schäfer
Martin.Schaefer@cadcorp.com

Hi,

I recently found out that my app doesn't work in Spain because it creates localized queries like this:

create table t (c1 float8, c2 float8);
insert into t (c1, c2) values (3,14159, 1,4142);

I understand that PostgreSQL obviously can't parse this query. But I'm not sure how to fix this query so that it works under all circumstances.

If the database uses the "C" (or e.g. English or US) locale, then I know that I always have to use the decimal dot ('.') instead of a decimal comma (','), regardless of the locale of the client machine.

But what if the database itself uses a locale which mandates a decimal comma, like Spanish, German, etc.? How do I have to construct the SQL query then?

Martin

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Martin Schäfer (#1)
Re: Are SQL queries locale dependent?

=?iso-8859-1?Q?Martin_Sch=E4fer?= <Martin.Schaefer@cadcorp.com> writes:

I recently found out that my app doesn't work in Spain because it creates localized queries like this:

create table t (c1 float8, c2 float8);
insert into t (c1, c2) values (3,14159, 1,4142);

I understand that PostgreSQL obviously can't parse this query. But I'm not sure how to fix this query so that it works under all circumstances.

Use dots. The SQL syntax for a number is not locale-dependent.

regards, tom lane