Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2006, 12h21   #1
Invité régulier
 
Inscription : août 2005
Messages : 21
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 21
Points : 9
Points : 9
Par défaut Timestamp moins 24 heures

Bonjour,

Dans une table, j'ai un champ de type timestamp.
Je souhaite récupérer tous les champs qui sont compris entre un
timestamp et timestamp-24heures.
Exemple :
Table test
nom text
ts timestamp

Je voudrais faire un truc du style :
Soit subquery une sous requête retournant un timestamp
SELECT nom FROM test
WHERE ts BETWEEN
(subquery1)
AND
(subquery1)-24

j'espère être claire...
merci d'avance
magdalena est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 14h14   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Pourquoi veux-tu faire une sous-requête ? Pour récupérer un timestamp d'une autre table ? Si c'est le cas, il vaut mieux la mettre dans le FROM pour qu'elle ne s'exécute qu'une seule fois.

En tout cas, pour calculer une date à partir d'une autre, on peut utiliser INTERVAL (http://www.postgresql.org/docs/7.4/i...datetime.html).

Code :
1
2
3
SELECT nom
FROM test, (SELECT ... AS dateDebut FROM ...) dt
WHERE ts BETWEEN dt.dateDebut AND dt.dateDebut - INTERVAL '1 day'
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2006, 14h27   #3
Invité régulier
 
Inscription : août 2005
Messages : 21
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 21
Points : 9
Points : 9
Citation:
Envoyé par Biglo
Salut,

Pourquoi veux-tu faire une sous-requête ? Pour récupérer un timestamp d'une autre table ? Si c'est le cas, il vaut mieux la mettre dans le FROM pour qu'elle ne s'exécute qu'une seule fois.

En tout cas, pour calculer une date à partir d'une autre, on peut utiliser INTERVAL (http://www.postgresql.org/docs/7.4/i...datetime.html).

Code :
1
2
3
SELECT nom
FROM test, (SELECT ... AS dateDebut FROM ...) dt
WHERE ts BETWEEN dt.dateDebut AND dt.dateDebut - INTERVAL '1 day'
sublime !
merci
magdalena est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h30.


 
 
 
 
Partenaires

Hébergement Web