sql >> Database >  >> RDS >> PostgreSQL

Hoe Extract() werkt in PostgreSQL

In PostgreSQL, het extract() functie haalt subvelden op, zoals het jaar, de maand, het uur of de minuut, deels uit een datum/tijd-waarde.

Het is gelijk aan de date_part() functie, hoewel met een iets andere syntaxis.

Syntaxis

De syntaxis gaat als volgt:

EXTRACT(field FROM source)

Waar:

  • field is is een identificatie of tekenreeks die selecteert welk veld uit de bronwaarde moet worden geëxtraheerd.
  • source is een tijdstempel of een interval .

Voorbeeld – Tijdstempel

Hier is een eenvoudig voorbeeld om te demonstreren hoe u een veld kunt ophalen uit een tijdstempel waarde.

SELECT extract(hour FROM timestamp '2022-10-30 10:11:35');

Resultaat:

10

In dit voorbeeld wordt het uurveld opgehaald uit een tijdstempel waarde.

Zoals vermeld, kan het eerste argument een identifier of string zijn. Dit is een van de verschillen tussen extract() en date_part() . Bij gebruik van date_part() , moet u een tekenreeks voor dit argument opgeven.

Hier is hetzelfde voorbeeld opnieuw, behalve als een string.

SELECT extract('hour' FROM timestamp '2022-10-30 10:11:35');

Resultaat:

10

Hier is een voorbeeld met dezelfde tijdstempel, maar deze keer haal ik het jaarveld op.

SELECT extract(year FROM timestamp '2022-10-30 10:11:35');

Resultaat:

2022

Voorbeeld – Interval

In dit voorbeeld haal ik een datumgedeelte op uit een interval waarde.

SELECT extract(hour FROM interval '7 hours 45 minutes');

Resultaat:

7

In het volgende voorbeeld retourneert de functie correct het aantal uren, ook al geef ik alleen het aantal minuten op.

SELECT extract(hour FROM interval '120 minutes');

Resultaat:

2

Reken echter niet op deze techniek. Het kan zijn dat u niet altijd het resultaat krijgt dat u verwacht.

Bijvoorbeeld:

SELECT extract(hour FROM interval '100 minutes');

Resultaat:

1

En nog een:

SELECT extract(minute FROM interval '2 hours');

Resultaat:

0

Veldnamen

Het eerste argument kan een van de volgende zijn:

  • century
  • day
  • decade
  • dow
  • doy
  • epoch
  • hour
  • isodow
  • isoyear
  • microseconds
  • millennium
  • milliseconds
  • minute
  • month
  • quarter
  • second
  • timezone
  • timezone_hour
  • timezone_minute
  • week
  • year

Dit zijn dezelfde als de geldige waarden voor date_part() functie.


  1. PostgreSQL JDBC Null String genomen als bytea

  2. Hoe de uitvoer van DBMS_OUTPUT.PUT_LINE omleiden naar een bestand?

  3. T-SQL:In tegenstelling tot tekenreeksaaneenschakeling - hoe tekenreeks in meerdere records te splitsen

  4. Inspecteer de besturingsbron van alle besturingselementen in uw MS Access-project