Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Select auf Datetime Spalte

  Alt 30. Jan 2006, 16:26
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'}
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat