Je cherche à effectuer des calculs de date/heure dans une requête HQL. Plus précisément, comment ajouter ou soustraire (x) la quantité de temps du résultat de la fonction current_timestamp()
? Ou dois-je passer dans SQL pour cela et espérer que quelle que soit la base de données en cours d'exécution le supporte?Performing Date/Heure Maths en HQL?
exemple de requête HQL:
FROM RandomThing
WHERE randomTime IS NOT NULL AND
randomTime >= current_timestamp() AND
randomTime <= (current_timestamp() + :timeToAdd)
je peux définir le: paramètre timeToSubtract être une unité particulière, bien que quoi que ce soit plus que les heures ne serait pas souhaitable, et secondes serait plus souhaitable. CLARIFICATION: Je réalise que cela peut être facilement fait en dehors de la requête. Mais pour des raisons philosophiques, disons qu'il est important d'utiliser l'heure du serveur de base de données, plutôt que l'heure du système d'interrogation. Exemple pratique: j'interroge un horodatage automatique pour toutes les entrées effectuées au cours de la dernière période (x). Comme l'horodatage est effectué par le système de base de données, il est important d'utiliser également l'heure actuelle de la base de données.
Je cherche aussi la même chose, sauf que timeToAdd n'est pas un paramètre, mais une colonne de la même ligne, donc cela n'a pas de sens d'effectuer une seconde requête sur la même ligne et la même table. – James