# Daten finden, die nicht länger als 60 Minuten vergangen sind



## cuchulainn (21. Jan 2006)

Hallo alle zusammen,

im Moment arbeite ich an einem Programm, bei dem ich Daten aus einer Datenbank benutzen muss. In einer Tabelle ist ein DateTime-Feld. Nun muss ich mittels SQL alle Datensätze aus dieser Tabelle herausfiltern, die nicht älter als 60 Minuten sind. Mit der Funktion now in MySQL kann ich das aktuelle Datum und die aktuelle Uhrzeit herausfinden. Aber wie kann ich jetzt die Differenz zwischen dem Ergebnis von now und der gespeicherten Uhrzeit herausfinden? Hat jemand eine Idee?


Gruß

Cuchulainn


----------



## Bleiglanz (21. Jan 2006)

DATE_ADD

schau mal in die SQL-Referenz


----------



## Gast (26. Jan 2006)

Normalerweise kannst Du mit Datumswerten rechnen - beachte dabei, daß Datumswerte (meist) intern als Fließkommazahlen abgebildet werden, wobei der ganzzahlige Anteil für den jeweiligen Tag (Nullpunkt des Systems differiert zwischen den einzelnen RDBMS) und der Nachkommaanteil - wenn Du so willst - für die Uhrzeit am jeweiligen Tag codiert. So hat bspw. 12:00 Uhr mittags am Tag nach dem Nullpunkt der RDBMS-Zeitrechnung den Wert 1.5

Deine Abfrage müsste also im WHERE-Teil irgendwo einen Ausdruck der Form...

Where Mein_Datums_Feld >= Now - (1/24) 

...enthalten - bei Oracle würde es...

Where Mein_Datums_Feld >= SysDate - (1/24) 

...heißen, wobei (1/24) dem 24. Teil eines Tages entspricht, also einer Stunde.


----------

