extract fungsi

Berlaku untuk:centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Menampilkan field dari source.

Nota

Saat mengekstrak bidang dari TIMESTAMP (TIMESTAMP_LTZ), hasilnya didasarkan pada zona waktu sesi.

Sintaks

extract(field FROM source)

Argumen

  • field: Kata kunci yang memilih bagian mana dari source yang harus diekstrak.
  • source: Ekspresi DATE, , TIMESTAMPTIMESTAMP_NTZ, atau INTERVAL .

Mengembalikan

Jika field adalah SECOND, maka DECIMAL(8, 6). Dalam semua kasus lain, .INTEGER

Nilai field yang didukung adalah ketika source adalah DATE atau TIMESTAMP:

  • YEAR, , YYEARS, YR, YRS: Bidang tahun
  • YEAROFWEEK: Tahun penomoran minggu ISO 8601 yang termasuk dalam tanggalwaktu. Misalnya, 2005-01-02 adalah bagian dari minggu ke-53 dari tahun 2004, jadi hasilnya adalah 2004
  • QUARTER, QTR: Kuartal (1 - 4) tahun tanggalwaktu masuk
  • MONTH, , MONMONS, MONTHS: Bidang bulan (1 - 12)
  • WEEK, , WWEEKS: Jumlah tahun berbasis mingguan ISO 8601. Seminggu dianggap dimulai pada hari Senin dan minggu 1 adalah minggu pertama dengan >3 hari. Dalam sistem penomoran minggu ISO, dimungkinkan bagi tanggal awal Januari menjadi bagian dari minggu ke-52 atau ke-53 tahun sebelumnya, dan untuk tanggal di akhir Desember menjadi bagian dari minggu pertama tahun depan. Misalnya, 2005-01-02 adalah bagian dari minggu ke-53 tahun 2004, sedangkan 2012-12-31 adalah bagian dari minggu pertama 2013
  • DAY, , DDAYS: Hari bidang bulan (1 - 31)
  • DAYOFWEEK, DOW: Hari dalam seminggu untuk tanggalwaktu sebagai Minggu(1) hingga Sabtu(7)
  • DAYOFWEEK_ISO, DOW_ISO: ISO 8601 berdasarkan hari dalam seminggu untuk tanggalwaktu sebagai Senin(1) hingga Minggu(7)
  • DOY: Hari dalam setahun (1 - 365/366)
  • HOUR, , HHOURS, HR, HRS: Bidang jam (0 - 23)
  • MINUTE, , MMIN, MINS, MINUTES: Bidang menit (0 - 59)
  • SECOND, , SSEC, SECONDS, SECS: Bidang detik, termasuk bagian pecahan

Nilai-nilai field yang didukung saat source adalah INTERVAL (tidak peka huruf besar/kecil):

  • YEAR, , YYEARS, YR, YRS: Total bulan / 12
  • MONTH, , MONMONS, MONTHS: Total bulan % 12
  • DAY, , DDAYS: Bagian hari dari interval
  • HOUR, , HHOURS, HR, HRS: Berapa jam microseconds berisi
  • MINUTE, , MMIN, MINS, MINUTES: Berapa menit tersisa setelah mengambil jam dari mikrodetik
  • SECOND, , SSEC, SECONDS, SECS: Berapa detik dengan pecahan yang tersisa setelah mengambil jam dan menit dari mikrodetik

Untuk mengembalikan akronim tiga huruf untuk hari dalam seminggu, gunakan fungsi nama hari.

Contoh

> SELECT extract(YEAR FROM TIMESTAMP '2019-08-12 01:00:00.123456');
 2019

> SELECT extract(week FROM TIMESTAMP'2019-08-12 01:00:00.123456');
 33

> SELECT extract(DAY FROM DATE'2019-08-12');
 12

> SELECT extract(SECONDS FROM TIMESTAMP'2019-10-01 00:00:01.000001');
 1.000001

> SELECT extract(MONTHS FROM INTERVAL '2-11' YEAR TO MONTH);
 11

> SELECT extract(SECONDS FROM INTERVAL '5:00:30.001' HOUR TO SECOND);
 30.001000