web-dev-qa-db-fra.com

Comment tronquer la date dans PostgreSQL?

J'essaie de sélectionner toutes les transactions dans PostgreSQL 9 qui se sont produites avant la fin de la semaine dernière. Quelle fonction de date dois-je utiliser pour construire un tel intervalle?

20
yegor256
> select now();
"2013-09-09 11:43:29.307089+02"
> select date_trunc('week',now()-'1 week'::interval);
"2013-09-02 00:00:00+02" //start of previous week
> select date_trunc('week',now())
"2013-09-09 00:00:00+02" // start of current week
> select date_trunc('week',now())-'1 s'::interval;
"2013-09-08 23:59:59+02" // end of previous week

Donc, utiliser date_trunc('week',now())-'1 s'::interval; sur le côté droit de votre opérateur de date devrait fonctionner. Il s'agit d'un horodatage avec une valeur de fuseau horaire qui se réfère en fait à 23:59:59 le dimanche, mais avec 2 heures de différence avec l'heure UTC, cela dépend de votre environnement local et de vos paramètres.

26
regilero

Vous pouvez fixer une date ou supprimer des jours de la journée en cours.

Show this : sont les opérateurs et fonctions de date/heure présents dans Postgres

J'ai lié les fonctions 9.1 car vous avez tagué avec postgres 9.1, existe aussi la page de référence 9.2

1
Joe Taras