Forums Neueste Beiträge
 

Welches Format fuer Datum und Uhrzeit ist am sichersten?

20/11/2007 - 11:26 von Christoph Schneegans | Report spam
Hallo allerseits!

Ich muß in einer ADO.NET-Anwendung unter SQL Server 2000 wegen der in
<http://google.com/groups?threadm=5j...al.net>
beschriebenen Problematik meine SQL-Ausdrücke per String-Konkatenation
zusammenbauen und kann dummerweise keine "richtigen" Parameter verwenden.

(Gerade eben fàllt mir auf, daß man die temporàre Tabelle doch eigentlich ganz
elegant mit einem _parameterlosen_ SQL-Ausdruck erstellen könnte. SqlCommands mit
Parametern, die im Anschluß mittels sp_executesql ausgeführt werden, sehen die
temporàre Tabelle dann ja. Na gut, fürs nàchste Mal; ich will jetzt nicht alles
wieder umbauen.)

Nun erhàlt ein Anwender die folgende Fehlermeldung:

The conversion of a char data type to a datetime data type resulted in an
out-of-range datetime value.

Offensichtlich unterstützt sein SQL Server 2000 das Format

yyyy-mm-dd hh:mm:ss.mmm

nicht, das ich beim Zusammenbauen meines SQL-Ausdrucks verwende. Das hàngt aber
offenbar noch von anderen Einstellungen, etwa in der Systemsteuerung ab, denn ich
selbst kann den Fehler auf meinem System nicht reproduzieren.

Welches Format für Datum und Uhrzeit empfiehlt ihr? BOL erwàhnt

yyyy-mm-dd Thh:mm:ss:mmm (no spaces),

aber das funktioniert bei mir weder mit noch ohne Leerzeichen vor dem "T",
hingegen klappt

yyyy-mm-ddThh:mm:ss.mmm,

also mit "." statt ":" hinter den Sekunden.

<http://schneegans.de/usenet/mid-schreibweisen/> · Postings richtig verlinken
 

Lesen sie die antworten

#1 Christoph Schneegans
20/11/2007 - 14:01 | Warnen spam
Christoph "Ingrid" Schneegans schrieb:

Offensichtlich unterstützt sein SQL Server 2000 das Format

yyyy-mm-dd hh:mm:ss.mmm

nicht, das ich beim Zusammenbauen meines SQL-Ausdrucks verwende. Das hàngt aber
offenbar noch von anderen Einstellungen, etwa in der Systemsteuerung ab, denn
ich selbst kann den Fehler auf meinem System nicht reproduzieren.



Und weiß jemand, warum sich die beiden SQL-Server hier unterscheiden? Ich habe
alle möglichen Einstellungen veràndert, u.a. natürlich das Datumsformat in den
"Regions- und Sprachoptionen" der Systemsteuerung, aber meine Instanzen führen
etwa

declare @dat datetime;
set @dat = '2007-12-31 23:59:59.998';
select @dat;

klaglos aus. SET DATEFORMAT dürfte hier doch wohl keine Rolle spielen, oder?
Liegt es evtl. auch am Patch-Stand des Servers?

<http://schneegans.de/usenet/mid-schreibweisen/> · Postings richtig verlinken

Ähnliche fragen