PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak działa Extract() w PostgreSQL

W PostgreSQL extract() funkcja pobiera podpola, takie jak rok, miesiąc, godzina lub minuta, część z wartości daty/czasu.

Jest odpowiednikiem date_part() funkcja, chociaż z nieco inną składnią.

Składnia

Składnia wygląda tak:

EXTRACT(field FROM source)

Gdzie:

  • field is jest identyfikatorem lub ciągiem znaków, który wybiera pole do wyodrębnienia z wartości źródłowej.
  • source to sygnatura czasowa lub przedział .

Przykład – znacznik czasu

Oto podstawowy przykład pokazujący, jak pobrać pole z sygnatury czasowej wartość.

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

Wynik:

10

Ten przykład pobiera pole godziny z sygnatury czasowej wartość.

Jak wspomniano, pierwszym argumentem może być identyfikator lub ciąg znaków. To jedna z różnic między extract() i date_part() . Podczas korzystania z date_part() , musisz podać ciąg dla tego argumentu.

Oto znowu ten sam przykład, z wyjątkiem ciągu.

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

Wynik:

10

Oto przykład z tym samym znacznikiem czasu, ale tym razem pobieram pole roku.

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

Wynik:

2022

Przykład — interwał

W tym przykładzie pobieram część daty z przedziału wartość.

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

Wynik:

7

W następnym przykładzie funkcja poprawnie zwraca liczbę godzin, mimo że podaję tylko liczbę minut.

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

Wynik:

2

Nie licz jednak na tę technikę. Może się okazać, że nie zawsze uzyskujesz oczekiwane rezultaty.

Na przykład:

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

Wynik:

1

I jeszcze:

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

Wynik:

0

Nazwy pól

Pierwszym argumentem może być dowolny z następujących:

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

Są takie same jak prawidłowe wartości dla date_part() funkcja.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy INSERT RETURNING gwarantuje zwrot rzeczy we właściwej kolejności?

  2. Jak najlepiej wykorzystać indeksy PostgreSQL

  3. Aktualizacja bazy danych do PostgreSQL w wersji 10 — co powinieneś wiedzieć

  4. Robienie GDZIE W na wielu kolumnach w Postgresql

  5. Nie udało się znaleźć funkcji konwersji z nieznanej na tekst