PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana Extract() Bekerja di PostgreSQL

Di PostgreSQL, extract() fungsi mengambil subbidang seperti tahun, bulan, jam, atau menit, bagian dari nilai tanggal/waktu.

Ini setara dengan date_part() fungsi, meskipun dengan sintaks yang sedikit berbeda.

Sintaks

Sintaksnya seperti ini:

EXTRACT(field FROM source)

Dimana:

  • field is adalah pengidentifikasi atau string yang memilih bidang apa yang akan diekstrak dari nilai sumber.
  • source adalah stempel waktu atau interval .

Contoh – Stempel Waktu

Berikut adalah contoh dasar untuk mendemonstrasikan cara mengambil bidang dari stempel waktu nilai.

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

Hasil:

10

Contoh ini mengambil bidang jam dari stempel waktu nilai.

Seperti yang disebutkan, argumen pertama dapat berupa pengidentifikasi atau string. Ini adalah salah satu perbedaan antara extract() dan date_part() . Saat menggunakan date_part() , Anda harus menyediakan string untuk argumen ini.

Ini contoh yang sama lagi, kecuali sebagai string.

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

Hasil:

10

Berikut ini contoh dengan stempel waktu yang sama, tetapi kali ini saya mengambil bidang tahun.

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

Hasil:

2022

Contoh – Interval

Dalam contoh ini, saya mengambil bagian tanggal dari interval nilai.

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

Hasil:

7

Pada contoh berikutnya, fungsi mengembalikan jumlah jam dengan benar, meskipun saya hanya memberikan jumlah menit.

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

Hasil:

2

Namun, jangan mengandalkan teknik ini. Anda mungkin menemukan bahwa Anda tidak selalu mendapatkan hasil yang Anda harapkan.

Misalnya:

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

Hasil:

1

Dan satu lagi:

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

Hasil:

0

Nama Bidang

Argumen pertama dapat berupa salah satu dari berikut ini:

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

Ini sama dengan nilai yang valid untuk date_part() fungsi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Upser dengan transaksi

  2. Menuju cloud di CHAR(10)

  3. Sepuluh Cara untuk Memperluas Fungsi PostgreSQL

  4. Bagaimana cara memilih larik 1d dari larik 2d?

  5. Cara Menggunakan Fungsi Substring di PostgreSQL dan Redshift