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

Comment date_part() fonctionne dans PostgreSQL

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