Mengembalikan cap waktu yang dikonversi dari Waktu Universal Terkoordinasi (UTC) ke zona waktu tertentu. Fungsi ini merupakan bagian tambahan dari MaxCompute V2.0.
Catatan penggunaan
Nilai kembali dari fungsi FROM_UTC_TIMESTAMP dipengaruhi oleh nilai odps.sql.timezone yang dikonfigurasi untuk proyek Anda. Jika Anda mengatur odps.sql.timezone ke Asia/Shanghai, zona waktu UTC+8 digunakan, yang 8 jam lebih cepat dari UTC. Dalam hal ini, 8 jam ditambahkan ke hasil perhitungan fungsi FROM_UTC_TIMESTAMP. Sebagai contoh, fungsi FROM_UTC_TIMESTAMP(0, 'Asia/Shanghai') mengonversi cap waktu dengan UTC+0 menjadi cap waktu dengan waktu Beijing (UTC+08:00), dan hasil perhitungannya adalah 0 + 8 × 3600 = 28800. Konfigurasi odps.sql.timezone=Asia/Shanghai memerlukan offset 8 jam tambahan. Akibatnya, nilai kembali adalah 1970-01-01 16:00:00.
Sintaksis
timestamp from_utc_timestamp({any primitive type}*, string <timezone>)Parameter
{any primitive type}*: wajib. Cap waktu bertipe TIMESTAMP, DATETIME, TINYINT, SMALLINT, INT, atau BIGINT. Jika nilainya bertipe TINYINT, SMALLINT, INT, atau BIGINT, satuan waktu akurat hingga milidetik.
timezone: wajib. Zona waktu baru.
CatatanAnda dapat mencari daftar zona waktu menggunakan mesin pencari. Untuk informasi lebih lanjut tentang zona waktu yang didukung, lihat Zona Waktu.
Nilai kembali
Nilai bertipe TIMESTAMP dikembalikan. Nilai kembali berformat yyyy-mm-dd hh:mi:ss.ff3. Nilai kembali bervariasi berdasarkan aturan berikut:
Jika nilai {any primitive type}* bukan bertipe TIMESTAMP, DATETIME, TINYINT, SMALLINT, INT, atau BIGINT, kesalahan akan dikembalikan.
Jika nilai {any primitive type}* adalah null, kesalahan akan dikembalikan.
Jika nilai timezone adalah null, nilai kembali adalah null.
Data sampel
Berikut ini adalah data sumber sampel untuk membantu Anda memahami cara menggunakan fungsi tanggal. Pada topik ini, tabel bernama mf_date_fun_t dibuat dan data dimasukkan ke dalam tabel. Pernyataan sampel:
create table if not exists mf_date_fun_t(
id int,
date1 date,
datetime1 datetime,
timestamp1 timestamp,
date2 date,
datetime2 datetime,
timestamp2 timestamp,
date3 string,
date4 bigint);
insert into mf_date_fun_t values
(1,DATE'2021-11-29',DATETIME'2021-11-29 00:01:00',TIMESTAMP'2021-01-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-20',123456780),
(2,DATE'2021-11-28',DATETIME'2021-11-28 00:02:00',TIMESTAMP'2021-02-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-21',123456781),
(3,DATE'2021-11-27',DATETIME'2021-11-27 00:03:00',TIMESTAMP'2021-03-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-22',123456782),
(4,DATE'2021-11-26',DATETIME'2021-11-26 00:04:00',TIMESTAMP'2021-04-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-23',123456783),
(5,DATE'2021-11-25',DATETIME'2021-11-25 00:05:00',TIMESTAMP'2021-05-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-24',123456784),
(6,DATE'2021-11-24',DATETIME'2021-11-24 00:06:00',TIMESTAMP'2021-06-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-25',123456785),
(7,DATE'2021-11-23',DATETIME'2021-11-23 00:07:00',TIMESTAMP'2021-07-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-26',123456786),
(8,DATE'2021-11-22',DATETIME'2021-11-22 00:08:00',TIMESTAMP'2021-08-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-27',123456787),
(9,DATE'2021-11-21',DATETIME'2021-11-21 00:09:00',TIMESTAMP'2021-09-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-28',123456788),
(10,DATE'2021-11-20',DATETIME'2021-11-20 00:10:00',TIMESTAMP'2021-10-11 00:00:00.123456789',DATE'2021-10-29',DATETIME'2021-10-29 00:00:00',TIMESTAMP'2021-10-11 00:00:00.123456789','2021-11-29',123456789);Kueri data dari tabel mf_date_fun_t. Pernyataan sampel:
select * from mf_date_fun_t;
-- Hasil berikut dikembalikan:
+------+-------+------------+------------+-------+------------+------------+-------+------------+
| id | date1 | datetime1 | timestamp1 | date2 | datetime2 | timestamp2 | date3 | date4 |
+------+-------+------------+------------+-------+------------+------------+-------+------------+
| 1 | 2021-11-29 | 2021-11-29 00:01:00 | 2021-01-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-20 | 123456780 |
| 2 | 2021-11-28 | 2021-11-28 00:02:00 | 2021-02-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-21 | 123456781 |
| 3 | 2021-11-27 | 2021-11-27 00:03:00 | 2021-03-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-22 | 123456782 |
| 4 | 2021-11-26 | 2021-11-26 00:04:00 | 2021-04-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-23 | 123456783 |
| 5 | 2021-11-25 | 2021-11-25 00:05:00 | 2021-05-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-24 | 123456784 |
| 6 | 2021-11-24 | 2021-11-24 00:06:00 | 2021-06-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-25 | 123456785 |
| 7 | 2021-11-23 | 2021-11-23 00:07:00 | 2021-07-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-26 | 123456786 |
| 8 | 2021-11-22 | 2021-11-22 00:08:00 | 2021-08-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-27 | 123456787 |
| 9 | 2021-11-21 | 2021-11-21 00:09:00 | 2021-09-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-28 | 123456788 |
| 10 | 2021-11-20 | 2021-11-20 00:10:00 | 2021-10-11 00:00:00.123456789 | 2021-10-29 | 2021-10-29 00:00:00 | 2021-10-11 00:00:00.123456789 | 2021-11-29 | 123456789 |
+------+-------+------------+------------+-------+------------+------------+-------+------------+Contoh: data statis
-- Satuan waktu dari nilai input akurat hingga milidetik dan nilai kembali adalah 2017-08-01 04:24:00.0.
select from_utc_timestamp(1501557840000, 'PST');
-- Nilai kembali adalah 1970-01-30 08:00:00.0.
select from_utc_timestamp('1970-01-30 16:00:00','PST');
-- Nilai kembali adalah 1970-01-29 16:00:00.0.
select from_utc_timestamp('1970-01-30','PST');
-- Aktifkan edisi tipe data MaxCompute V2.0. Kirimkan pernyataan SET berikut bersama dengan pernyataan SQL. Nilai kembali adalah 2011-12-25 17:00:00:00.123.
set odps.sql.type.system.odps2=true;
select from_utc_timestamp(timestamp '2011-12-25 09:00:00.123456', 'Asia/Shanghai');
-- Aktifkan edisi tipe data MaxCompute V2.0. Kirimkan pernyataan SET berikut bersama dengan pernyataan SQL. Nilai kembali adalah 2011-12-25 01:55:00.0.
set odps.sql.type.system.odps2=true;
select from_utc_timestamp(timestamp '2011-12-25 06:55:00', 'America/Toronto');
-- Nilai kembali adalah null.
select from_utc_timestamp('1970-01-30',null);Contoh: data tabel
Konversikan nilai tanggal di kolom datetime1 dan timestamp1 menjadi cap waktu dalam zona waktu tertentu. Data di Data Sampel digunakan dalam contoh ini. Pernyataan sampel:
-- Aktifkan edisi tipe data MaxCompute V2.0. Kirimkan pernyataan SET berikut bersama dengan pernyataan SQL.
set odps.sql.type.system.odps2=true;
select datetime1, from_utc_timestamp(datetime1,'PST') pst, timestamp1, from_utc_timestamp(timestamp1,'Asia/Shanghai') asia from mf_date_fun_t;Hasil berikut dikembalikan:
+---------------------+---------------------+-------------------------------+-------------------------------+
| datetime1 | pst | timestamp1 | asia |
+---------------------+---------------------+-------------------------------+-------------------------------+
| 2021-11-29 00:01:00 | 2021-11-28 16:01:00 | 2021-01-11 00:00:00.123456789 | 2021-01-11 08:00:00.123456789 |
| 2021-11-28 00:02:00 | 2021-11-27 16:02:00 | 2021-02-11 00:00:00.123456789 | 2021-02-11 08:00:00.123456789 |
| 2021-11-27 00:03:00 | 2021-11-26 16:03:00 | 2021-03-11 00:00:00.123456789 | 2021-03-11 08:00:00.123456789 |
| 2021-11-26 00:04:00 | 2021-11-25 16:04:00 | 2021-04-11 00:00:00.123456789 | 2021-04-11 08:00:00.123456789 |
| 2021-11-25 00:05:00 | 2021-11-24 16:05:00 | 2021-05-11 00:00:00.123456789 | 2021-05-11 08:00:00.123456789 |
| 2021-11-24 00:06:00 | 2021-11-23 16:06:00 | 2021-06-11 00:00:00.123456789 | 2021-06-11 08:00:00.123456789 |
| 2021-11-23 00:07:00 | 2021-11-22 16:07:00 | 2021-07-11 00:00:00.123456789 | 2021-07-11 08:00:00.123456789 |
| 2021-11-22 00:08:00 | 2021-11-21 16:08:00 | 2021-08-11 00:00:00.123456789 | 2021-08-11 08:00:00.123456789 |
| 2021-11-21 00:09:00 | 2021-11-20 16:09:00 | 2021-09-11 00:00:00.123456789 | 2021-09-11 08:00:00.123456789 |
| 2021-11-20 00:10:00 | 2021-11-19 16:10:00 | 2021-10-11 00:00:00.123456789 | 2021-10-11 08:00:00.123456789 |
+---------------------+---------------------+-------------------------------+-------------------------------+Fungsi terkait
FROM_UTC_TIMESTAMP adalah fungsi tanggal. Untuk informasi lebih lanjut tentang fungsi terkait komputasi dan konversi tanggal, lihat Fungsi Tanggal.