PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir la date d'hier dans PostgreSQL

Problème :

Vous souhaitez afficher la date d'hier (sans l'heure) dans une base de données PostgreSQL.

Solution 1 :

SELECT current_date - INTEGER '1' AS yesterday_date;

En supposant qu'aujourd'hui soit le 2020-09-24, le résultat est :

date_hier
2020-09-23

Discussion :

Pour obtenir la date d'hier, vous devez soustraire un jour à la date d'aujourd'hui. Utilisez current_date pour obtenir la date d'aujourd'hui. Notez que vous n'avez pas besoin de crochets à la fin de la current_date une fonction. Dans PostgreSQL, vous pouvez soustraire ou ajouter n'importe quel nombre de jours en utilisant le INTEGER mot-clé. Ici, puisque vous devez soustraire un jour, vous utilisez - INTEGER '1' pour obtenir la date d'hier. Notez que le résultat de ce calcul a toujours le type de colonne date .

Solution 2 :

SELECT (current_date - INTERVAL '1 day')::date AS yesterday_date;

En supposant qu'aujourd'hui soit le 2020-09-24, le résultat est :

date_hier
2020-09-23

Discussion :

Obtenez la date d'aujourd'hui en utilisant current_date . Vous devez soustraire un intervalle d'un jour à la date actuelle. Pour ce faire, utilisez le INTERVAL mot-clé, qui crée n'importe quel intervalle de temps/date que vous voulez (ici, '1 day' , qui dans PostgreSQL équivaut à 24 heures). Soustraire INTERVAL '1 day' à partir de la date d'aujourd'hui se traduira par une colonne formatée comme un horodatage, vous devez donc la convertir en date . Le moyen le plus rapide de le faire dans PostgreSQL consiste à ajouter ::date à l'expression entière (n'oubliez pas de mettre l'expression entre parenthèses).

Bien sûr, vous pouvez revenir en arrière par n'importe quel intervalle de temps tout aussi facilement. Voici un exemple :

SELECT (current_date - INTERVAL '3 months 10 days')::date;

Un INTERVAL peut également être ajouté à une date. Donc, voici un moyen si vous voulez obtenir la date de demain :

SELECT (current_date + INTERVAL '1 day')::date AS tomorrow_date;