Der richtige Weg dafür ist eine parametrisierte Abfrage, nicht Textformatierung. Dann können Sie einfach einen stark typisierten SqlDbType.DateTime
Parameter verwenden.
(Wenn Sie unbedingt Textformatierung verwenden müssen - und ich empfehle dringend dagegen - dann sollte etwas wie yyyyMMdd HH:mm:ss
den Trick machen.)
Um auf Lukes Antwort zu kommen, bin ich erst kürzlich auf diesen Fehler gestoßen.
Das yyyy-MM-dd HH:mm:ss
-Format hat ein Gebietsschema / Sprache-Problem in SQL Server 2005 (ein Beispiel ist Französisch), ist aber in SQL 2008 behoben:
Verwenden Sie dieses Format NICHT: yyyy-MM-dd HH:mm:ss
(Leerzeichentrennzeichen).
Verwenden Sie nur: yyyy-MM-ddTHH:mm:ss
(Trennzeichen "T") oder yyyyMMdd HH:mm:ss
(Trennzeichen ohne Trennzeichen)
Wichtig, wenn Sie Skripte generieren, die datetime
constants enthalten.