Le calcul d'une date dans Postgres par l'ajout de mois?
J'ai une postgres table qui contient les champs suivants
date_debut,la durée
durée contient un certain nombre de mois, donc, pour calculer la date de fin vous ajoutez le mois de la date de début. Maintenant, je veux faire quelque chose comme ceci avec une postgres requête.
SELECT *
FROM table
WHERE start_date > '2010-05-12'
AND (start_date + duration) < '2010-05-12'
Est-ce possible et comment fait-on du droit de la syntaxe?
La version de mon postgres est PostgreSQL 8.1.22 sur x86_64-redhat-linux-gnu, compilé par GCC gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
- 8.1 ? Vous devriez vraiment mettre à niveau ! Si la "durée" est de type INTERVALLE, alors cela va fonctionner, si c'est un nombre entier de mois que vous avez à faire "durée * '1 MOIS'::INTERVALLE".
- vous devriez faire une réponse.
- 8.1 est la version par défaut de sur RHEL5. Il est stable et peut être pris en charge par Red Hat jusqu'à ce que 2014. Dans certains cas, cela importe beaucoup plus que d'avoir la dernière version.
Vous devez vous connecter pour publier un commentaire.
essayer:
ou
Plus d'infos: Date/Heure de Fonctions et d'Opérateurs
Vous pouvez trouver cet article utile: PostgreSQL: mois := intervalle 'de 30 jours;
Également ce lien: http://wiki.postgresql.org/wiki/Working_with_Dates_and_Times_in_PostgreSQL, plus précisément la section intitulée "TRAVAILLER avec DATETIME, DATE, et les VALEURS de l'INTERVALLE".