sql >> Databáze >  >> RDS >> PostgreSQL

Jak funguje Extract() v PostgreSQL

V PostgreSQL, extract() Funkce načte podpole, jako je rok, měsíc, hodina nebo minuta, část z hodnoty data/času.

Je ekvivalentní k date_part() funkce, i když s mírně odlišnou syntaxí.

Syntaxe

Syntaxe vypadá takto:

EXTRACT(field FROM source)

Kde:

  • field is je identifikátor nebo řetězec, který vybírá, jaké pole se má extrahovat ze zdrojové hodnoty.
  • source je časové razítko nebo interval .

Příklad – Časové razítko

Zde je základní příklad, který ukazuje, jak načíst pole z časového razítka hodnotu.

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

Výsledek:

10

Tento příklad načte pole hodiny z časového razítka hodnotu.

Jak již bylo zmíněno, prvním argumentem může být identifikátor nebo řetězec. Toto je jeden z rozdílů mezi extract() a date_part() . Při použití date_part() , musíte pro tento argument zadat řetězec.

Zde je znovu stejný příklad, s výjimkou řetězce.

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

Výsledek:

10

Zde je příklad se stejným časovým razítkem, ale tentokrát načítám pole roku.

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

Výsledek:

2022

Příklad – Interval

V tomto příkladu získám část data z intervalu hodnotu.

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

Výsledek:

7

V dalším příkladu funkce správně vrací počet hodin, i když uvádím pouze počet minut.

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

Výsledek:

2

S touto technikou však nepočítejte. Možná zjistíte, že ne vždy dostanete výsledek, který očekáváte.

Například:

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

Výsledek:

1

A další:

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

Výsledek:

0

Názvy polí

První argument může být kterýkoli z následujících:

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

Jsou stejné jako platné hodnoty pro date_part() funkce.


  1. Jak volat funkci Oracle z Hibernate s návratovým parametrem?

  2. Analýza statistik tabulky PostgreSQL

  3. Jak získat aktuální datum a čas v MySQL

  4. Připojte se ke vzdálené databázi MySQL přes SSH pomocí Java