sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan date_part() virker i PostgreSQL

I PostgreSQL er date_part() funktionen henter underfelter såsom år, måned, time eller minut, del af en dato/tidsværdi.

Det svarer til extract() funktion, dog med en lidt anden syntaks.

Syntaks

Funktionen har følgende syntaks:

date_part('field', source)

Hvor:

  • 'field' er til datodelen, som du vil hente. Denne parameter skal være en strengværdi, ikke et navn. Se nedenfor for en liste over gyldige feltnavne.
  • source er et tidsstempel eller et interval som du vil have datodelen hentet fra.

Eksempel – Tidsstempel

Her er et grundlæggende eksempel til at demonstrere, hvordan man henter et felt fra et tidsstempel .

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

Resultat:

22

Dette eksempel henter timefeltet fra et tidsstempel værdi.

Her er den igen, men denne gang henter jeg årstallet.

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

Resultat:

2020

Eksempel – Interval

I dette eksempel henter jeg en datodel fra et interval værdi.

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

Resultat:

5

I det næste eksempel returnerer funktionen korrekt antallet af timer, selvom jeg kun angiver antallet af minutter.

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

Resultat:

2

Regn dog ikke med denne teknik. Du vil måske opdage, at du ikke altid får det resultat, du forventer.

For eksempel:

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

Resultat:

1

Og en anden:

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

Resultat:

0

Feltnavne

Det første argument kan være et af følgende:

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

  1. Oracle til PostgreSQL:ANSI ydre joinsyntaks i PostgreSQL

  2. PostgreSQL vs. MySQL:Hvilken er bedst?

  3. 11 SQL Server-indeks for bedste praksis for forbedret justering af ydeevne

  4. Avanceret databaseovervågning og -styring til TimescaleDB