Ich schaue, wie man Datum/Zeit Mathe innerhalb einer HQL Abfrage durchführt. Genauer gesagt, wie addiere oder subtrahiere ich (x) die Zeitmenge vom Ergebnis der Funktion current_timestamp()
? Oder muss ich dafür in SQL gehen und hoffen, dass, was auch immer Datenbank ausgeführt wird, es unterstützt?Durchführen von Datums-/Zeitmathematik in HQL?
HQL Abfrage Beispiel:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
kann ich definieren: timeToSubtract Parameter eine bestimmte Einheit zu sein, obwohl etwas größer als Stunden unerwünscht wäre, und Sekunden wären sehr wünschenswert.
Erläuterung: Ich weiß, dass dies leicht außerhalb der Abfrage durchgeführt werden kann. Aber aus philosophischen Gründen ist es beispielsweise wichtig, die Zeit des Datenbankservers zu verwenden und nicht die Zeit des Abfragesystems. Praktisches Beispiel: Ich frage einen automatischen Zeitstempel für alle Einträge innerhalb der letzten (x) Zeit. Da der Zeitstempel vom Datenbanksystem erstellt wird, ist es wichtig, auch die aktuelle Zeit der Datenbank zu verwenden.
Ich bin auch auf der Suche nach der gleichen Sache, außer dass die TimeToAdd ist kein Parameter, sondern eine Spalte aus der gleichen Zeile, so dass es keinen Sinn macht, eine zweite Abfrage für die gleiche Zeile und Tabelle. – James