2009-02-05 4 views
4

J'essaie de trouver un moyen d'avoir une instruction SELECT retourner l'ensemble de dates entre 2 dates d'entrée avec un intervalle donné. Je voudrais être en mesure de changer facilement le laps de temps et l'intervalle qui serait retourné, donc coder dur quelque chose avec une série de SELECT ... UNIONs ne serait pas idéal. Par exemple: Je veux toutes les dates à intervalles de 5 secondes pour les 60 dernières secondes.SQL générant un ensemble de dates

à prévoir:

  times 
--------------------- 
2009-02-05 08:00:00 
2009-02-05 08:00:05 
2009-02-05 08:00:10 
2009-02-05 08:00:15 
2009-02-05 08:00:20 
... 
2009-02-05 08:00:55 

Edit: generate_series (...) peuvent être utilisés à la place d'une table dans le SELECT et simulent une table avec une série de chiffres dans avec une valeur de départ donné, valeur finale et éventuellement une étape. De là, il peut être CAST au type dont j'ai besoin pour les fonctions de temps et manipulé pendant le SELECT.

Merci Quassnoi.

Répondre

4
SELECT CAST (s || ' seconds' AS INTERVAL) + TIMESTAMP 'now' 
FROM generate_series(0, -60, -5) s 
+0

Cette arithmétique TIMESTAMP est vraiment difficile à PostgreSQL :) – Quassnoi

Questions connexes