sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur date_part() fungerar i PostgreSQL

I PostgreSQL, date_part() funktionen hämtar underfält som år, månad, timme eller minut, en del från ett datum-/tidsvärde.

Det motsvarar extract() funktion, men med en något annorlunda syntax.

Syntax

Funktionen har följande syntax:

date_part('field', source)

Var:

  • 'field' är för datumdelen som du vill hämta. Denna parameter måste vara ett strängvärde, inte ett namn. Se nedan för en lista över giltiga fältnamn.
  • source är en tidsstämpel eller ett intervall som du vill att datumdelen ska hämtas från.

Exempel – Tidsstämpel

Här är ett grundläggande exempel för att visa hur man hämtar ett fält från en tidsstämpel .

SELECT date_part('hour', timestamp '2020-09-16 22:33:15');

Resultat:

22

Det här exemplet hämtar timfältet från en tidsstämpel värde.

Här är den igen, men den här gången hämtar jag årtalet.

SELECT date_part('year', timestamp '2020-09-16 22:33:15');

Resultat:

2020

Exempel – Intervall

I det här exemplet hämtar jag en datumdel från ett intervall värde.

SELECT date_part('hour', interval '5 hours 30 minutes');

Resultat:

5

I nästa exempel returnerar funktionen korrekt antalet timmar, även om jag bara anger antalet minuter.

SELECT date_part('hour', interval '120 minutes');

Resultat:

2

Räkna dock inte med denna teknik. Du kanske upptäcker att du inte alltid får det resultat du förväntar dig.

Till exempel:

SELECT date_part('hour', interval '100 minutes');

Resultat:

1

Och en annan:

SELECT date_part('minute', interval '2 hours');

Resultat:

0

Fältnamn

Det första argumentet kan vara något av följande:

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

  1. hur gjuter man hexadecimalen till varchar(datetime)?

  2. Hur man lagrar en datetime i MySQL med tidszonsinformation

  3. mysql, iterera genom kolumnnamn

  4. Oracle REGEXP_LIKE och ordgränser