2 Stimmen

Gebietsschema eines SQL Server 2005 festlegen

Standardmäßig ist die Sprache des SQL-Servers auf "Englisch (Vereinigte Staaten)" eingestellt, wodurch das Datumsformat auf mm/dd/yy anstelle des von mir gewünschten Datumsformats gesetzt wird, das australisch ist und ein Datumsformat wie tt/mm/yy hat.

Gibt es eine Option im Server Management Studio / Konfigurationstools, wo ich das Gebietsschema des SQL Servers einstellen kann, das verhindert, dass die DateTime-Felder im US-Datumsformat formatiert werden?

Wenn nicht, wie kann ich es konvertieren, wenn ich eine SQL-Abfrage wie (verzeihen Sie mir, wenn die Syntax falsch ist, ich habe es auf der Stelle gemacht):

Dim dc As New SqlCommand("INSERT INTO hello VALUES (@Date)", cn)
dc.Parameters.Add(New SqlParameter("Date", System.DateTime.Now))

Vielen Dank im Voraus :)

2voto

Joe Punkte 117971

Sie können die Standardsprache/Landessprache für jeden Benutzer im SQL Management Studio einstellen (im Ordner Sicherheit).

Mit dem Befehl SET LANGUAGE (oder SET DATEFORMAT, wenn Sie nur das Datumsformat ändern wollen) können Sie dies für eine bestimmte Verbindung überschreiben.

Sie können die Standardsprache (die für neue Benutzer verwendet wird) auch in SQL Management Studio festlegen: Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Eigenschaften/Erweitert/Standardsprache.

0voto

balexandre Punkte 71124

Habe keine Ahnung, wie das Format in "down under" ist

tt/mm/jjjj hh:mm:ss ?

Wenn ja, ist dieses Datum die britische/französische Anmerkung, so dass Sie nur noch Folgendes tun müssen:

INSERT INTO hello VALUES convert(datetime, @Date + ' 00:00:00', 103)

o

INSERT INTO hello VALUES convert(datetime, @Date, 103)

wenn Sie die Zeit tatsächlich platzieren

für weitere Informationen, Bücher online auf MSDN prüfen um die richtige Codenummer zu erhalten.

sogar in Selects verwende ich dies immer, egal was in SQL steht (weil ich dazu neige, Hosting SQL zu verwenden, und dort kann ich die Formate nicht ändern), z. B.:

SELECT myColumn FROM myTable WHERE myDateField >= convert(datetime, @Date + '00:00:00', 103)

Ich hoffe, es hilft

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X