Ich versuche, eine große Codebasis zu aktualisieren, um die Werte CultureInfo
und/oder IFormatProvider
bei der Formatierung/Analyse von Werten korrekt anzugeben. Wenn ich zum Beispiel einen vom Benutzer erhaltenen Wert analysiere, übergebe ich CultureInfo.CurrentCulture
beim Aufruf TryParse
, und wenn ich einen Gleitkommawert in einen String für Persistenz umwandele, überlasse ich CultureInfo.InvariantCulture
beim Aufruf ToString
.berücksichtigt SQL Server Kultur/Gebietsschema beim Konvertieren von Werten in/aus Zeichenfolgen?
Meine Frage ist das: Wenn ich SQL-Abfragen erzeuge, sollte ich Zahlen und dergleichen mit der invarianten Kultur oder der Kultur des SQL-Servers formatieren, oder was? Was bedeutet, wenn mein Computer auf Deutsch (Deutschland) eingestellt ist, welche dieser Fragen ist richtig?
select foo from bar where baz = 123.45
oder
select foo from bar where baz = 123,45
Ebenso, wenn ich CAST
SQLs verwenden, um einen Gleitkommawert in einen String zu konvertieren, welche locale wird SQL für die Umwandlung benutzen?
Ich habe die SQL-Dokumente gesucht, aber bis jetzt kann ich keine guten Antworten finden. Ich habe einige Informationen über Datumsformatierung gefunden (SET DATEFORMAT und ähnliches), aber das war's.
HINWEIS: Ich weiß, dass die bevorzugte Möglichkeit, Eingaben an eine SQL-Abfrage zu übergeben, über Parameter ist. Nehmen wir also aus gutem Grund an, dass ich einen guten Grund habe, sie in die Abfragezeichenfolge zu formatieren. Außerdem ist die Eingabe von Abfrageeingaben nur ein Teil der umfassenderen Frage.
kann helfen: http://StackOverflow.com/Questions/353545/How-Touse-Same-Database-and-Same-Program-for-Two-Different-locales- in-net – boj