Dans PostgreSQL, le date_part()
récupère des sous-champs tels que l'année, le mois, l'heure ou la minute, à partir d'une valeur de date/heure.
C'est l'équivalent de extract()
fonction, bien qu'avec une syntaxe légèrement différente.
Syntaxe
La fonction a la syntaxe suivante :
date_part('field', source)
Où :
'field'
correspond à la partie date que vous souhaitez récupérer. Ce paramètre doit être une valeur de chaîne, pas un nom. Voir ci-dessous pour une liste des noms de champs valides.source
est un horodatage ou un intervalle dont vous voulez récupérer la partie date.
Exemple – Horodatage
Voici un exemple de base pour montrer comment récupérer un champ à partir d'un horodatage .
SELECT date_part('hour', timestamp '2020-09-16 22:33:15');
Résultat :
22
Cet exemple récupère le champ heure d'un horodatage valeur.
Le revoilà, mais cette fois je récupère le champ année.
SELECT date_part('year', timestamp '2020-09-16 22:33:15');
Résultat :
2020
Exemple – Intervalle
Dans cet exemple, je récupère une partie date d'un intervalle valeur.
SELECT date_part('hour', interval '5 hours 30 minutes');
Résultat :
5
Dans l'exemple suivant, la fonction renvoie correctement le nombre d'heures, même si je ne fournis que le nombre de minutes.
SELECT date_part('hour', interval '120 minutes');
Résultat :
2
Cependant, ne comptez pas sur cette technique. Vous constaterez peut-être que vous n'obtenez pas toujours le résultat que vous attendez.
Par exemple :
SELECT date_part('hour', interval '100 minutes');
Résultat :
1
Et un autre :
SELECT date_part('minute', interval '2 hours');
Résultat :
0
Noms de champ
Le premier argument peut être l'un des suivants :
century
day
decade
dow
doy
epoch
hour
isodow
isoyear
microseconds
millennium
milliseconds
minute
month
quarter
second
timezone
timezone_hour
timezone_minute
week
year