6 Stimmen

Ändern des Datumsformats auf einer SQL Server-DB und nicht auf dem gesamten Server in tt/mm/jjjj

Kann jemand helfen, wir haben eine Sql Server 2005-Datenbank installiert (eigentlich seine ein Sql Server 2000 an einen Sql Server 2005-Server angeschlossen) mit der Standard-Server-Sprache Sprache USA mit Datumsformat wie mm/dd/yyy und wir wirklich brauchen, um es auf diese Weise zu halten, aber derzeit gerade eine neue Datenbank auf den Server hochgeladen und dies muss das Datumsformat für dd/mm/yyyy haben.

Kann ich eine Änderung nur für eine Datenbank und nicht für den gesamten Server erzwingen? Wenn ich die Änderung auf dem gesamten Server erzwinge, werden alle meine anderen Anwendungen fehlschlagen.

Zum Beispiel haben wir derzeit diese Sql-Anweisung, die fehlschlägt

SELECT * FROM sesiones WHERE ultimo_acceso < '16/04/2009 13:36:17'

aber natürlich können wir dies hinzufügen, was jetzt funktioniert

SELECT * FROM sesiones WHERE ultimo_acceso < Convert(datetime, '16/04/2009 13:36:17', 103)

aber das Problem ist, dass es eine große Anzahl von Sql-Anweisungen innerhalb der Anwendung gibt. Die Wahrheit ist, dass die Anwendung ziemlich alt ist und wir nicht wirklich wollen, um Änderungen an den Quellcode zu machen.

Wenn wir also eine Änderung nur an der Datenbank / den Tabellen einer bestimmten Datenbank erzwingen könnten, würde dies ausreichen

Jede Hilfe ist willkommen

11voto

Ed Guiness Punkte 33920

Sie können das Standard-Datumsformat ändern per Benutzer durch Auswahl der Standardsprache für diesen Benutzer in SQL Management Studio > Sicherheit > Logins > {Benutzereigenschaften} > Standardsprache.

Und Sie können das Datumsformat für jede Sprache mit

EXEC sp_helplanguage

3voto

Dead account Punkte 18876
SET dateformat dmy;
SELECT * FROM sesiones WHERE ultimo_acceso < '16/04/2009 13:36:17';

3voto

Joel Coehoorn Punkte 377088

Ich glaube, Sie sind verwirrt. Datumsangaben in Sql Server werden nicht als Strings gespeichert. Sie werden als 8-Byte-Binärwerte gespeichert und erst dann in Zeichenketten umgewandelt, wenn Sie sie dem Benutzer anzeigen. Sie verwenden eine Datetime-Spalte, um Ihre Daten zu speichern, richtig?

2voto

marc_s Punkte 701497

Beim Umgang mit Datumszeichenfolgen in SQL Server würde ich immer das ISO-8601-Datumsformat verwenden

YYYY-MM-DDTHH:MM:SS 

die unabhängig von den Sprach- oder Ländereinstellungen funktionieren sollte.

Versuchen Sie Ihre Auswahl als:

SELECT * FROM sesiones WHERE ultimo_acceso < '2009-04-16T13:36:17'

Marc

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