title image


Smiley Re: MS-SQL-Server: Datum grösser als
Hallo,



prinzipiell kann man Datumswerte ganz einfach mit den Operatoren vergleichen, wie sonstige Werte eben auch. Voraussetzung dafür ist, dass es sich auch wirklich um Datumswerte handelt, und nicht um irgendeine Aneinanderreihung von Zahlen, die der Mensch willkürlich als Datum definiert hat. SQLServer verlangt eine (bzw. auch mehrere) ganz klar definierte Formate, wie ein Datum auszusehen hat.



Die Sache mit dem day() kann schon mal grundsätzlich nicht funktionieren. Die Funktion Day() gibt den Tag des Monats aus, der im Datum festgehalten ist. Bei "2006-02-21 10:54:05.723" wäre das also 21, weil der 21. Februar. Du vergleichst also im ersten Beispiel CREADATE > 21.



Die Convert()-Funktion ist da eine Möglichkeit, die andere ist, auf das Format aufzupassen. Der Vergleich könnte z.B. so aussehen:



Select ....

....

Where CREADATE > 20060221



20060221 wird vom SQLServer als ein Datum interpretiert (im Gegenatz zu 2006-02-21), und schon sollte das ganze klappen.

Allerdings muss man hier noch darauf achten, dass 20060221 dann automatisch mit Uhrzeit "00:00:00" angenommen wird. Wenn der Vergleich taggenau reicht, dann spielt das keine Rolle. Wenn die Uhrzeit auch noch mit abgefragt werden soll, musst diese eben auch noch im entsprechenden Format dazu schreiben.

Wie dieses Format konkret aussieht, weiß ich auswendig nicht, da musst in der SQLHilfe nachsehen, aber ich denke, es war so in etwa: '20060221 16:19:27'



Ciao, WolfgangE


An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: