Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Bagian tanggal untuk fungsi tanggal atau stempel waktu
Tabel berikut mengidentifikasi nama bagian tanggal dan waktu bagian dan singkatan yang diterima sebagai argumen untuk fungsi berikut:
-
DATEADD
-
DATEDIFF
-
DATE_PART
-
EKSTRAK
Tanggal paruh waktu atau paruh waktu | Singkatan |
---|---|
milenium, milenium | mil, mil |
abad, berabad-abad | c, sen, sen |
dekade, dekade | Desember, decs |
jangka waktu | epoch (didukung oleh) EKSTRAK |
tahun, tahun | y, thn, thn |
seperempat, kuartal | qtr, qtrs |
bulan, bulan | mon, mons |
minggu, minggu | w |
hari dalam seminggu |
dayofweek, dow, dw, hari kerja (didukung oleh dan) DATE_PART Fungsi EKSTRAK Mengembalikan integer dari 0-6, dimulai dengan hari Minggu. catatanBagian tanggal DOW berperilaku berbeda dari bagian tanggal hari minggu (D) yang digunakan untuk string format datetime. D didasarkan pada bilangan bulat 1-7, di mana hari Minggu adalah 1. Untuk informasi selengkapnya, lihat String format datetime. |
hari dalam setahun | dayofyear, doy, dy, yearday (didukung oleh) EKSTRAK |
hari, hari | d |
jam, jam | h, jam, jam |
menit, menit | m, min, menit |
kedua, detik | s, detik, detik |
milidetik, milidetik | ms, msec, msec, mdetik, mdetik, milidetik, milidetik, milidetik, milidetik |
mikrodetik, mikrodetik | mikrosec, mikrodetik, mikrodetik, usecond, useconds, us, usec, usec |
zona waktu, zona waktu_jam, zona waktu_menit | Didukung oleh EKSTRAK untuk timestamp dengan zona waktu (TIMESTAMPTZ) saja. |
Variasi hasil dengan detik, milidetik, dan mikrodetik
Perbedaan kecil dalam hasil kueri terjadi ketika fungsi tanggal yang berbeda menentukan detik, milidetik, atau mikrodetik sebagai bagian tanggal:
-
Fungsi EXTRACT mengembalikan bilangan bulat untuk bagian tanggal yang ditentukan saja, mengabaikan bagian tanggal tingkat yang lebih tinggi dan lebih rendah. Jika bagian tanggal yang ditentukan adalah detik, milidetik dan mikrodetik tidak termasuk dalam hasil. Jika bagian tanggal yang ditentukan adalah milidetik, detik dan mikrodetik tidak termasuk. Jika bagian tanggal yang ditentukan adalah mikrodetik, detik dan milidetik tidak termasuk.
-
Fungsi DATE_PART mengembalikan bagian detik lengkap dari stempel waktu, terlepas dari bagian tanggal yang ditentukan, mengembalikan nilai desimal atau bilangan bulat sesuai kebutuhan.
Misalnya, bandingkan hasil kueri berikut:
create table seconds(micro timestamp); insert into seconds values('2009-09-21 11:10:03.189717'); select extract(sec from micro) from seconds;
date_part ----------- 3
select date_part(sec, micro) from seconds;
pgdate_part ------------- 3.189717
Catatan CENTURY, EPOCH, DECADE, dan MIL
- CENTURY atau CENTURY
-
Amazon Redshift menafsirkan CENTURY untuk memulai dengan tahun ## #1 dan diakhiri dengan tahun:
###0
select extract (century from timestamp '2000-12-16 12:21:13');
date_part ----------- 20
select extract (century from timestamp '2001-12-16 12:21:13');
date_part ----------- 21
- EPOCH
-
Implementasi Amazon Redshift EPOCH relatif terhadap 1970-01-01 00:00:00.000 000 terlepas dari zona waktu tempat cluster berada. Anda mungkin perlu mengimbangi hasil dengan perbedaan jam tergantung pada zona waktu di mana cluster berada.
Contoh berikut menunjukkan hal berikut:
-
Membuat tabel bernama EVENT_EXAMPLE berdasarkan tabel EVENT. Perintah CREATE AS ini menggunakan fungsi DATE_PART untuk membuat kolom tanggal (disebut PGDATE_PART secara default) untuk menyimpan nilai epoch untuk setiap peristiwa.
-
Memilih kolom dan tipe data EVENT_EXAMPLE dari PG_TABLE_DEF.
-
Memilih EVENTNAME, STARTTIME, dan PGDATE_PART dari tabel EVENT_EXAMPLE untuk melihat format tanggal dan waktu yang berbeda.
-
Memilih EVENTNAME dan STARTTIME dari EVENT EXAMPLE apa adanya. Mengonversi nilai epoch di PGDATE_PART menggunakan interval 1 detik ke stempel waktu tanpa zona waktu, dan mengembalikan hasilnya dalam kolom bernama CONVERTED_TIMESTAMP.
create table event_example as select eventname, starttime, date_part(epoch, starttime) from event; select "column", type from pg_table_def where tablename='event_example';
column | type ---------------+----------------------------- eventname | character varying(200) starttime | timestamp without time zone pgdate_part | double precision (3 rows)
select eventname, starttime, pgdate_part from event_example;
eventname | starttime | pgdate_part ----------------------+---------------------+------------- Mamma Mia! | 2008-01-01 20:00:00 | 1199217600 Spring Awakening | 2008-01-01 15:00:00 | 1199199600 Nas | 2008-01-01 14:30:00 | 1199197800 Hannah Montana | 2008-01-01 19:30:00 | 1199215800 K.D. Lang | 2008-01-01 15:00:00 | 1199199600 Spamalot | 2008-01-02 20:00:00 | 1199304000 Macbeth | 2008-01-02 15:00:00 | 1199286000 The Cherry Orchard | 2008-01-02 14:30:00 | 1199284200 Macbeth | 2008-01-02 19:30:00 | 1199302200 Demi Lovato | 2008-01-02 19:30:00 | 1199302200
select eventname, starttime, timestamp with time zone 'epoch' + pgdate_part * interval '1 second' AS converted_timestamp from event_example;
eventname | starttime | converted_timestamp ----------------------+---------------------+--------------------- Mamma Mia! | 2008-01-01 20:00:00 | 2008-01-01 20:00:00 Spring Awakening | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Nas | 2008-01-01 14:30:00 | 2008-01-01 14:30:00 Hannah Montana | 2008-01-01 19:30:00 | 2008-01-01 19:30:00 K.D. Lang | 2008-01-01 15:00:00 | 2008-01-01 15:00:00 Spamalot | 2008-01-02 20:00:00 | 2008-01-02 20:00:00 Macbeth | 2008-01-02 15:00:00 | 2008-01-02 15:00:00 The Cherry Orchard | 2008-01-02 14:30:00 | 2008-01-02 14:30:00 Macbeth | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 Demi Lovato | 2008-01-02 19:30:00 | 2008-01-02 19:30:00 ...
-
- DEKADE atau DEKADE
-
Amazon Redshift menafsirkan DECADE atau DECADECADES DATEPART berdasarkan kalender umum. Misalnya, karena kalender umum dimulai dari tahun 1, dekade pertama (dekade 1) adalah 0001-01-01 hingga 0009-12-31, dan dekade kedua (dekade 2) adalah 0010-01-01 hingga 0019-12-31. Misalnya, dekade 201 membentang dari 2000-01-01 hingga 2009-12-31:
select extract(decade from timestamp '1999-02-16 20:38:40');
date_part ----------- 200
select extract(decade from timestamp '2000-02-16 20:38:40');
date_part ----------- 201
select extract(decade from timestamp '2010-02-16 20:38:40');
date_part ----------- 202
- MIL atau MILS
-
Amazon Redshift menafsirkan MIL untuk memulai dengan hari pertama tahun #001 dan diakhiri dengan hari terakhir tahun ini:
#000
select extract (mil from timestamp '2000-12-16 12:21:13');
date_part ----------- 2
select extract (mil from timestamp '2001-12-16 12:21:13');
date_part ----------- 3