Es gibt eine hübsche geheime (weil kaum erwähnte) Formatierung für Datumsangaben, sodaß jeder
SQL-Server auf der ganzen Welt damit klar kommt, egal welches Datumsformat denn nun eingestellt ist. Das ist doch praktisch, oder?
SQL-Code:
Select * from Tabelle where Datumsfeld = {d '2006-01-30'} -- nur Datum
Select * from Tabelle where Datumsfeld = {ts '2006-01-30 10:20:30'} -- Datum und Uhrzeit
Angeblich ist das eine
ODBC-Formatierung, das funktioniert aber auch mit JDBC oder
ADO 2.8
Weiterhin sollte man DateTime angaben nicht auf Gleichheit prüfen, obwohl das als BCD implementiert (also genau) ist. Verwende einfach ein "BETWEEN Heute 0:00 AND Heute 23:59:59". Konvertierungen oder DatePart sind Quatsch, da dann
SQL keinen Index mehr verwenden kann und das ist u.U. ein Gau (Tabelle mit 100.000.000 Einträgen).
Um also alle Einträge des 30.1.2006 zu finden, reicht das hier:
Select * From Tabelle Where Datumsfeld between {ts '2006-01-30 00:00:00'} and {ts '2006-01-30 23:59:59'}