Layanan Log Sederhana menyediakan fungsi waktu, fungsi ekstraksi tanggal dan waktu, fungsi interval waktu, serta fungsi pelengkapan deret waktu untuk melakukan operasi tanggal dan waktu pada log, seperti konversi format, pengelompokan, dan agregasi. Topik ini menjelaskan sintaksis dan contoh penggunaan fungsi-fungsi tersebut.
Fungsi tanggal dan waktu
Log Service mendukung fungsi tanggal dan waktu berikut.
-
Saat mengonfigurasi format waktu, tentukan hanya hingga detik. Jangan sertakan milidetik atau mikrodetik.
-
Anda hanya perlu mengonfigurasi format waktu (format) untuk bagian waktu dari string waktu. Tidak perlu mengonfigurasi format untuk komponen lainnya, seperti zona waktu.
-
Setiap log dalam Log Service berisi field terpesan
__time__. Nilai field ini adalah Stempel waktu UNIX, seperti 1592374067, yang merepresentasikan 2020-06-17 14:07:47. -
Dalam pernyataan analisis Log Service, string harus diapit tanda kutip tunggal ('). Karakter yang tidak diapit tanda kutip atau diapit tanda kutip ganda (") merepresentasikan nama field atau nama kolom. Misalnya,
'status'merepresentasikan string status, sedangkanstatusatau"status"merepresentasikan field log status.
|
Jenis fungsi |
Nama fungsi |
Sintaks |
Deskripsi |
SQL |
SPL |
|
Fungsi tanggal dan waktu |
current_date |
Mengembalikan tanggal saat ini. |
√ |
× |
|
|
current_time |
Mengembalikan waktu saat ini dan zona waktunya. |
√ |
× |
||
|
current_timestamp |
Mengembalikan tanggal, waktu, dan zona waktu saat ini. |
√ |
× |
||
|
current_timezone() |
Mengembalikan zona waktu saat ini. |
√ |
× |
||
|
date(x) |
Mengembalikan bagian tanggal dari ekspresi date atau timestamp. |
√ |
× |
||
|
date_format(x, format) |
Mengonversi ekspresi timestamp menjadi string dalam format yang ditentukan. |
√ |
√ |
||
|
date_parse(x, format) |
Mengurai ekspresi string menjadi timestamp menggunakan format yang ditentukan. |
√ |
√ |
||
|
from_iso8601_date(x) |
Mengonversi string tanggal ISO 8601 menjadi nilai tanggal. |
√ |
× |
||
|
from_iso8601_timestamp(x) |
Mengonversi string timestamp ISO 8601 menjadi nilai timestamp. |
√ |
× |
||
|
from_unixtime(x) |
Mengonversi stempel waktu UNIX menjadi nilai timestamp tanpa informasi zona waktu. |
√ |
√ |
||
|
from_unixtime(x, time zone) |
Mengonversi stempel waktu UNIX ke nilai stempel waktu dalam zona waktu yang ditentukan. |
√ |
× |
||
|
from_unixtime(x, hours, minutes) |
Mengonversi stempel waktu UNIX ke nilai stempel waktu dengan offset yang ditentukan dalam hours dan minutes. |
√ |
× |
||
|
localtime |
Mengembalikan waktu lokal. |
√ |
× |
||
|
localtimestamp |
Mengembalikan tanggal dan waktu lokal. |
√ |
× |
||
|
now() |
Mengembalikan tanggal dan waktu saat ini. Fungsi now merupakan alias dari fungsi current_timestamp. |
√ |
× |
||
|
to_iso8601(x) |
Mengonversi ekspresi tanggal atau timestamp menjadi string berformat ISO 8601. |
√ |
× |
||
|
to_unixtime(x) |
Mengonversi ekspresi stempel waktu menjadi stempel waktu UNIX. |
√ |
√ |
||
|
current_unixtimestamp() |
Mengembalikan stempel waktu UNIX sistem saat ini. |
× |
√ |
||
|
Fungsi ekstraksi tanggal dan waktu |
day(x) |
Mengekstraksi hari dalam bulan dari ekspresi tanggal atau timestamp. Fungsi day merupakan alias dari fungsi day_of_month. |
√ |
× |
|
|
day_of_month(x) |
Mengekstraksi hari dalam bulan dari ekspresi tanggal atau timestamp. Fungsi day_of_month merupakan alias dari fungsi day. |
√ |
× |
||
|
day_of_week(x) |
Mengekstraksi hari dalam minggu dari ekspresi tanggal atau timestamp. Fungsi day_of_week merupakan alias dari fungsi dow. |
√ |
√ |
||
|
day_of_year(x) |
Mengekstraksi hari dalam tahun dari ekspresi tanggal atau timestamp. Fungsi day_of_year merupakan alias dari fungsi doy. |
√ |
√ |
||
|
dow(x) |
Mengekstraksi hari dalam minggu dari ekspresi tanggal atau timestamp. Fungsi dow merupakan alias untuk fungsi day_of_week. |
√ |
√ |
||
|
doy(x) |
Mengekstraksi hari dalam tahun dari ekspresi tanggal atau timestamp. Fungsi doy merupakan alias dari fungsi day_of_year. |
√ |
√ |
||
|
extract(field from x) |
Mengekstraksi bagian tertentu, seperti komponen tanggal atau waktu, dari ekspresi tanggal atau timestamp sesuai yang ditentukan oleh field. |
√ |
× |
||
|
hour(x) |
Mengekstraksi jam dalam sehari (dalam format 24 jam) dari ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
minute(x) |
Mengekstraksi menit dalam jam dari ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
month(x) |
Mengekstraksi bulan dalam tahun dari ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
quarter(x) |
Mengembalikan kuartal tahun dari ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
second(x) |
Mengekstraksi detik dari menit pada ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
timezone_hour(x) |
Mengembalikan komponen jam dari offset zona waktu. |
√ |
× |
||
|
timezone_minute(x) |
Mengembalikan komponen menit dari offset zona waktu. |
√ |
× |
||
|
week(x) |
Mengembalikan minggu dalam tahun dari ekspresi tanggal atau timestamp. Fungsi week merupakan alias dari fungsi week_of_year. |
√ |
× |
||
|
week_of_year(x) |
Mengembalikan minggu dalam tahun untuk tanggal tertentu. Fungsi week_of_year merupakan alias dari fungsi week. |
√ |
× |
||
|
year(x) |
Mengekstraksi tahun dari ekspresi tanggal atau timestamp. |
√ |
√ |
||
|
year_of_week(x) |
Mengekstraksi tahun berdasarkan penomoran minggu ISO dari ekspresi tanggal atau timestamp. Fungsi year_of_week merupakan alias dari fungsi yow. |
√ |
√ |
||
|
yow(x) |
Mengekstrak tahun penomoran minggu ISO dari tanggal target. Fungsi yow merupakan alias untuk fungsi year_of_week. |
√ |
√ |
||
|
Fungsi rentang waktu |
date_trunc(unit, x) |
Memotong ekspresi tanggal atau timestamp ke satuan yang ditentukan, seperti millisecond, second, minute, hour, day, month, atau year. |
√ |
× |
|
|
date_add(unit, N, x) |
Menambahkan rentang sebesar N unit ke x. |
√ |
√ |
||
|
date_diff(unit, x, y) |
Mengembalikan selisih antara dua ekspresi timestamp, x dan y, yang dinyatakan dalam satuan yang ditentukan. |
√ |
√ |
||
|
Fungsi pelengkapan time series |
time_series(x, window, format, padding_data) |
Menambahkan padding pada deret waktu untuk mengisi titik data yang hilang dalam rentang waktu kueri Anda. |
√ |
× |
Fungsi tanggal dan waktu
current_date
Fungsi current_date mengembalikan tanggal saat ini dalam format YYYY-MM-DD.
Sintaks
current_date
Tipe nilai kembali
Tipe tanggal.
Contoh
Menampilkan log dari kemarin.
-
Pernyataan kueri dan analisis (debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_date) AND __time__ > to_unixtime(date_add('day', -1, current_date)) -
Hasil kueri dan analisis ditampilkan dalam tabel di bawah ini. Data yang dikembalikan berasal dari log kemarin dan mencakup bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
current_time
Fungsi current_time mengembalikan waktu dan zona waktu saat ini dalam format HH:MM:SS.Ms Time_zone.
Sintaks
current_time
Tipe nilai kembali
Tipe waktu.
Contoh
Menampilkan waktu dan zona waktu saat ini.
-
Pernyataan kueri dan analisis (debug)
* | select current_time -
Hasil kueri dan analisis: Kolom
_col0mengembalikan 22:34:24.034 Asia/Shanghai.
current_timestamp
Fungsi current_timestamp mengembalikan tanggal, waktu, dan zona waktu saat ini dalam format YYYY-MM-DD HH:MM:SS.Ms Time_zone.
Sintaks
current_timestamp
Tipe nilai kembali
Tipe Timestamp.
Contoh
Menampilkan log dari kemarin.
-
Pernyataan kueri dan analisis (debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_timestamp) AND __time__ > to_unixtime(date_add('day', -1, current_timestamp)) -
Hasil kueri dan analisis ditampilkan dalam tabel berikut dan mencakup data log dari kemarin dengan bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
current_timezone
Fungsi current_timezone mengembalikan zona waktu saat ini.
Sintaks
current_timezone()
Tipe nilai kembali
Tipe Varchar.
Contoh
Menampilkan zona waktu saat ini.
-
Pernyataan kueri dan analisis (debug)
* | select current_timezone() -
Hasil kueri dan analisis: Kolom
_col0mengembalikan Asia/Shanghai.
date
Fungsi date digunakan untuk mengekstraksi bagian tanggal dari ekspresi datetime. Fungsi ini setara dengan cast(x as date). Untuk informasi lebih lanjut, lihat Fungsi konversi tipe.
Sintaks
date(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi |
Tipe nilai kembali
Tipe Date.
Contoh
Contoh ini mengekstraksi tanggal dari timestamp saat ini.
-
Pernyataan kueri dan analisis (debug)
* | SELECT current_timestamp, date(current_timestamp) -
Hasil kueri dan analisis: Kolom
_col0mengembalikan timestamp lengkap, sedangkan kolom_col1mengembalikan bagian tanggalnya, seperti 2021-09-07.
date_format
Fungsi date_format mengonversi ekspresi timestamp menjadi string dalam format yang ditentukan.
Sintaks
date_format(x, format)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi |
|
format |
Format target untuk ekspresi tanggal dan waktu. Untuk informasi lebih lanjut, lihat Spesifikasi format. |
Tipe nilai kembali
Tipe Varchar.
Contoh
Menghitung status permintaan Nginx beserta jumlahnya, lalu menampilkannya secara kronologis. Pertama, waktu log disejajarkan ke menit menggunakan date_trunc, lalu waktu tersebut dikonversi ke format %H:%i menggunakan date_format, menghitung jumlah permintaan untuk setiap kode status per menit, dan menampilkan hasil kueri serta analisis sebagai streamgraph.
-
Pernyataan kueri dan analisis (debug)
* | SELECT date_format(date_trunc('minute', __time__), '%H:%i') AS time, COUNT(1) AS count, status GROUP BY time, status ORDER BY time -
Hasil kueri dan analisis

date_parse
Fungsi date_parse mengonversi string dalam format tertentu menjadi nilai timestamp.
Sintaks
date_parse(x, format)
Parameter
|
Parameter |
Deskripsi |
|
x |
String tanggal dan waktu. |
|
format |
Format string tanggal dan waktu input. Untuk informasi lebih lanjut, lihat Spesifikasi format. |
Tipe nilai kembali
Tipe Timestamp.
Contoh
Mengonversi nilai bidang StartTime dan nilai bidang EndTime menjadi tipe timestamp, lalu menghitung selisih waktu di antara keduanya.
-
Pernyataan kueri dan analisis
*| SELECT date_parse(StartTime, '%Y-%m-%d %H:%i') AS "StartTime", date_parse(EndTime, '%Y-%m-%d %H:%i') AS "EndTime", date_diff('hour', StartTime, EndTime) AS "Time Difference (hours)" -
Hasil kueri dan analisis: Kueri mengembalikan
StartTimesebesar 2021-07-21 20:00:00.000,EndTimesebesar 2021-07-21 21:00:00.000, dan selisih waktu sebesar 1 jam.
from_iso8601_date
Fungsi from_iso8601_date mengonversi string tanggal berformat ISO 8601 menjadi nilai date.
Sintaks
from_iso8601_date(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
String tanggal berformat ISO 8601. |
Tipe nilai kembali
Tipe Date.
Contoh
Mengonversi nilai bidang time menjadi ekspresi tanggal bertipe date.
-
Contoh bidang
time:2020-05-03 -
Pernyataan kueri dan analisis
* | select from_iso8601_date(time) -
Hasil kueri dan analisis: Kolom
_col0mengembalikan 2020-05-03, yang merupakan nilaidate.
from_iso8601_timestamp
Fungsi from_iso8601_timestamp mengonversi string timestamp berformat ISO 8601 menjadi nilai timestamp.
Sintaks
from_iso8601_timestamp(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
String timestamp berformat ISO 8601. |
Tipe nilai kembali
Tipe Timestamp.
Contoh
Contoh ini mengonversi bidang time menjadi nilai timestamp.
-
Contoh bidang
time:2020-05-03T17:30:08 -
Pernyataan kueri dan analisis
* | select from_iso8601_timestamp(time) -
Hasil kueri dan analisis: Nilai kembali pada kolom _col0 adalah 2020-05-03 17:30:08.000 Asia/Shanghai, yaitu tipe timestamp dengan zona waktu.
from_unixtime
Fungsi from_unixtime mengonversi timestamp Unix menjadi nilai timestamp.
Sintaks
-
Mengonversi menjadi nilai timestamp tanpa informasi zona waktu.
from_unixtime(x) -
Mengonversi menjadi nilai timestamp dengan informasi zona waktu.
from_unixtime(x,time zone) -
Mengonversi menjadi nilai timestamp dengan informasi zona waktu, di mana hours dan minutes menentukan offset zona waktu.
from_unixtime(x, hours, minutes)
Parameter
|
Parameter |
Deskripsi |
|
x |
Timestamp Unix. |
|
time zone |
Zona waktu, seperti |
|
hours |
Komponen jam dari offset zona waktu, seperti |
|
minutes |
Komponen menit dari offset zona waktu, seperti |
Tipe nilai kembali
Tipe Timestamp.
Contoh
Mengonversi nilai bidang time menjadi ekspresi datetime bertipe timestamp dengan zona waktu.
-
Contoh bidang
time:1626774758 -
Pernyataan kueri dan analisis
* | select from_unixtime(time,'Asia/Shanghai') -
Hasil kueri dan analisis: Kolom
_col0mengembalikan 2021-07-20 17:52:38.000 Asia/Shanghai.
localtime
Fungsi localtime mengembalikan waktu lokal dalam format HH:MM:SS.Ms.
Sintaks
localtime
Tipe nilai kembali
Tipe waktu.
Contoh
Menampilkan waktu lokal.
-
Pernyataan kueri dan analisis (debug)
* | select localtime -
Hasil kueri dan analisis: Kolom
_col0mengembalikan 02:09:46.213.
localtimestamp
Fungsi localtimestamp mengembalikan tanggal dan waktu lokal dalam format YYYY-MM-DD HH:MM:SS.Ms Time_zone.
Sintaks
localtimestamp
Tipe nilai kembali
Tipe Timestamp.
Contoh
Menampilkan log dari kemarin.
-
Pernyataan kueri dan analisis (debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(localtimestamp) AND __time__ > to_unixtime(date_add('day', -1, localtimestamp)) -
Hasil kueri dan analisis ditampilkan dalam tabel di bawah ini. Hasilnya terdiri atas data log dari kemarin dan mencakup bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
now
Fungsi now mengembalikan tanggal dan waktu saat ini dalam format YYYY-MM-DD HH:MM:SS.Ms Time_zone. Fungsi now merupakan alias dari fungsi current_timestamp.
Sintaks
now()
Tipe nilai kembali
Tipe Timestamp.
Contoh
Menampilkan log dari kemarin.
-
Pernyataan kueri dan analisis (debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now())) -
Hasil kueri dan analisis ditampilkan dalam tabel di bawah ini. Hasilnya adalah data log dari kemarin, yang mencakup bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
to_iso8601
Fungsi to_iso8601 mengonversi ekspresi date atau timestamp menjadi string berformat ISO 8601.
Sintaks
to_iso8601(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi |
Tipe nilai kembali
Tipe Varchar.
Contoh
Contoh ini menggunakan to_iso8601 untuk mengonversi nilai dari current_timestamp menjadi string berformat ISO 8601.
-
Pernyataan kueri dan analisis (debug)
* | select to_iso8601(current_timestamp) AS ISO8601 -
Hasil kueri dan analisis: Kolom
ISO8601mengembalikan 2021-09-02T16:57:56.964+08:00.
to_unixtime
Fungsi to_unixtime mengonversi ekspresi timestamp menjadi timestamp Unix.
Sintaks
to_unixtime(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi |
Tipe nilai kembali
Tipe Double.
Contoh
Menampilkan log dari kemarin.
-
Pernyataan kueri dan analisis (debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(now()) AND __time__ > to_unixtime(date_add('day', -1, now())) -
Hasil kueri dan analisis ditampilkan dalam tabel di bawah ini. Kueri mengembalikan data log dari kemarin yang mencakup bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
current_unixtimestamp
Fungsi ini mengembalikan timestamp Unix sistem saat ini. Timestamp Unix adalah jumlah total detik yang telah berlalu sejak pukul 00:00:00 Coordinated Universal Time (UTC) pada 1 Januari 1970.
Sintaks
current_unixtimestamp()
Nilai kembali
-
Tipe nilai kembali:
BIGINT -
Deskripsi nilai kembali: Mengembalikan bilangan bulat yang merepresentasikan jumlah detik sejak epoch Unix.
-
Presisi: Presisi default adalah hingga detik.
Contoh
-
Contoh 1: Mendapatkan timestamp saat ini.
Penggunaan dasar ini umum untuk mencatat waktu penyisipan data.
* | extend now_ts =current_unixtimestamp() -- Contoh output: 1734913028 -
Contoh 2: Konversi format
Sering digunakan bersama
from_unixtimeuntuk mengonversi timestamp kembali ke format tanggal yang dapat dibaca manusia.* | extend readable_time = date_format(from_unixtime(cast(current_unixtimestamp() as double)), '%Y-%m-%d %H:%i:%s') -- Contoh output: 2025-12-23 00:17:08
Fungsi tanggal dan waktu
Fungsi day
Fungsi day mengembalikan hari dalam bulan dari ekspresi datetime dan setara dengan fungsi day_of_month.
Sintaks
day(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi timestamp atau tanggal. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini menggunakan fungsi current_date untuk mendapatkan tanggal saat ini, lalu menggunakan fungsi day untuk mengembalikan hari dalam bulan tersebut.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_date, day(current_date) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 7, yang menunjukkan hari ketujuh dalam bulan tersebut.
Fungsi day_of_month
Fungsi day_of_month mengembalikan hari dalam bulan dari ekspresi datetime dan setara dengan fungsi day.
Sintaks
day_of_month(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi timestamp atau tanggal. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini menggunakan fungsi current_date untuk mendapatkan tanggal saat ini dan fungsi day_of_month untuk mengembalikan hari dalam bulan tersebut.
-
Pernyataan kueri (Debug)
* | SELECT current_date, day_of_month(current_date) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 7, yaitu hari dalam bulan tersebut.
Fungsi day_of_week
Fungsi day_of_week mengembalikan bilangan bulat yang merepresentasikan hari dalam minggu dari ekspresi tanggal atau datetime.
Sintaks
day_of_week(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi datetime atau tanggal. |
Jenis kembalian
Jenis kembalian adalah bigint.
Contoh
Contoh ini mengambil tanggal saat ini menggunakan fungsi current_date, lalu mengekstrak hari dalam minggu menggunakan fungsi day_of_week.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_date, day_of_week(current_date) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 2, yang merepresentasikan hari kedua dalam minggu (Selasa).
Fungsi day_of_year
Fungsi day_of_year mengembalikan hari dalam tahun dari ekspresi datetime.
Sintaks
day_of_year(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi timestamp atau tanggal. |
Jenis kembalian
bigint
Contoh
Contoh ini menggunakan fungsi current_date untuk mendapatkan tanggal saat ini dan fungsi day_of_year untuk mengembalikan hari dalam tahun tersebut.
-
Pernyataan kueri (Debug)
* | SELECT current_date, day_of_year(current_date) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 250, yang berarti tanggal saat ini adalah hari ke-250 dalam tahun tersebut.
Fungsi dow
Fungsi dow mengembalikan hari dalam minggu dari ekspresi datetime. Fungsi ini setara dengan fungsi day_of_week.
Sintaks
dow(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi datetime. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini menggunakan fungsi dow untuk mengekstrak hari dalam minggu dari tanggal saat ini.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_date, dow(current_date) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 2, yang merepresentasikan hari kedua dalam minggu (Selasa).
Fungsi doy
Fungsi doy mengembalikan hari dalam tahun dari ekspresi datetime. Fungsi ini setara dengan fungsi day_of_year.
Sintaks
doy(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Nilai |
Jenis nilai kembalian
bigint
Contoh
Contoh ini menggunakan fungsi current_date untuk mendapatkan tanggal saat ini, dan fungsi doy untuk mengembalikan hari dalam tahun tersebut.
-
Pernyataan kueri (Debug)
* | SELECT current_date, doy(current_date) -
Hasil kueri dan analisis: Kolom
_col0mengembalikan tanggal saat ini, dan kolom_col1mengembalikan 250, yang menunjukkan bahwa tanggal saat ini adalah hari ke-250 dalam tahun tersebut.
Ekstrak fungsi
Fungsi extract mengekstrak bagian tertentu, seperti tahun atau jam, dari ekspresi tanggal atau waktu berdasarkan field yang ditentukan.
Sintaks
extract(field from x)
Parameter
|
Parameter |
Deskripsi |
|
field |
Bagian yang akan diekstrak. Nilai yang valid mencakup |
|
x |
Ekspresi yang mengembalikan nilai bertipe |
Jenis nilai kembalian
Mengembalikan nilai bigint.
Contoh
Contoh ini mengekstrak tahun dari tanggal yang dikembalikan oleh fungsi current_date.
-
Pernyataan kueri (Debug)
* | SELECT extract(year from current_date) -
Hasil kueri dan analisis: Kolom
_col0mengembalikan tahun yang diekstrak: 2021.
Fungsi jam
Fungsi hour mengekstrak jam (0–23) dari ekspresi datetime.
Sintaks
hour(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Input harus bertipe timestamp. |
Jenis nilai kembalian
Fungsi ini mengembalikan nilai bertipe bigint.
Contoh
Contoh ini menggunakan fungsi current_timestamp untuk mendapatkan timestamp saat ini dan fungsi hour untuk mengekstrak jamnya.
-
Pernyataan kueri (Debug)
* | SELECT current_timestamp, hour(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, sedangkan kolom _col1 mengembalikan jam saat ini: 11.
Fungsi Minute
Fungsi minute mengembalikan komponen menit (dari 0 hingga 59) dari suatu timestamp.
Sintaks
minute(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Parameter harus bertipe timestamp. |
Jenis nilai kembalian
Mengembalikan nilai bigint.
Contoh
Contoh ini mengambil timestamp saat ini dengan fungsi current_timestamp, lalu mengekstrak nilai menitnya.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_timestamp, minute(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 berisi timestamp saat ini, dan kolom _col1 berisi komponen menit, misalnya 17.
Fungsi Bulan
Fungsi month mengekstrak bulan dari ekspresi datetime.
Sintaks
month(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi tanggal atau timestamp. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini mengambil timestamp saat ini menggunakan fungsi current_timestamp, lalu mengekstrak bulannya menggunakan fungsi month.
-
Pernyataan kueri (Debug)
* | SELECT current_timestamp, month(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan bulan saat ini (9).
Fungsi Kuartal
Fungsi quarter mengembalikan kuartal dari suatu tanggal.
Sintaks
quarter(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi tanggal atau timestamp. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini menghitung kuartal dari tanggal saat ini dengan menggunakan fungsi current_timestamp dan quarter.
-
Pernyataan kueri (Debug)
* | SELECT current_timestamp,quarter(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 3, yaitu kuartal saat ini.
Fungsi Kedua
Fungsi second mengembalikan komponen detik dari ekspresi timestamp.
Sintaks
second(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi timestamp. |
Jenis nilai kembalian
Nilai bigint.
Contoh
Contoh ini menggunakan fungsi second untuk mengekstrak detik dari nilai yang dikembalikan oleh fungsi current_timestamp.
-
Pernyataan kueri (debug)
* | SELECT current_timestamp,second(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 41, yaitu detik saat ini.
Fungsi timezone_hour
Fungsi ini mengembalikan offset jam zona waktu.
Sintaks
timezone_hour(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi timestamp. |
Jenis kembalian
Nilai bigint.
Contoh
Contoh ini mengambil offset jam zona waktu dari waktu saat ini.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_timestamp, timezone_hour(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 8, yaitu offset jam zona waktu (UTC+8).
Fungsi Timezone_minute
Fungsi timezone_minute menghitung offset menit dari suatu zona waktu.
Sintaks
timezone_minute(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi bertipe timestamp. |
Jenis kembalian
Nilai bertipe bigint.
Contoh
Gunakan current_timestamp untuk mendapatkan timestamp saat ini, lalu gunakan timezone_minute untuk menghitung offset menit zona waktu.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT current_timestamp,timezone_minute(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 0, yaitu offset menit zona waktu.
Fungsi Week
Fungsi week mengembalikan minggu dalam tahun untuk tanggal tertentu dan setara dengan fungsi week_of_year.
Sintaks
week(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi tanggal atau timestamp. |
Jenis nilai kembalian
bigint
Contoh
Gunakan fungsi current_timestamp untuk mendapatkan tanggal dan waktu saat ini. Kemudian, gunakan fungsi week untuk menghitung minggu ke berapa dalam tahun ini.
-
Pernyataan kueri (Debug)
* | SELECT current_timestamp, week(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 36, yaitu minggu ke berapa dalam tahun ini.
Fungsi week_of_year
Fungsi week_of_year, alias dari fungsi week, mengembalikan minggu dalam tahun untuk suatu tanggal.
Sintaks
week_of_year(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Parameter harus bertipe tanggal atau timestamp. |
Jenis nilai kembalian
bigint
Contoh
Contoh ini mengambil minggu dalam tahun dari timestamp saat ini.
-
Pernyataan kueri dan analisis (debug)
* | SELECT current_timestamp, week_of_year(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 36, yang menunjukkan bahwa tanggal saat ini berada pada minggu ke-36 dalam tahun ini.
Fungsi Tahun
Fungsi year mengekstrak tahun dari tanggal atau timestamp.
Sintaks
year(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Parameter harus berupa |
Jenis nilai kembalian
Mengembalikan nilai bigint.
Contoh
Contoh ini menggunakan fungsi current_timestamp untuk mendapatkan tanggal dan waktu saat ini, serta fungsi year untuk mengekstrak tahunnya.
-
Pernyataan kueri dan analisis (debug)
* | SELECT current_timestamp,year(current_timestamp) -
Hasil kueri dan analisis: Kolom
_col0mengembalikan timestamp saat ini, dan kolom_col1mengembalikan tahun saat ini.
Fungsi year_of_week
Fungsi year_of_week mengembalikan tahun dari tanggal tertentu dalam sistem tanggal minggu ISO. Fungsi ini setara dengan fungsi yow.
Sintaks
year_of_week(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Ekspresi tanggal atau timestamp. |
Jenis nilai kembalian
bigint.
Contoh
Contoh ini menggunakan fungsi year_of_week bersama fungsi current_timestamp untuk mengembalikan tahun dari tanggal saat ini dalam sistem tanggal minggu ISO.
-
Pernyataan kueri dan analisis (debug)
* | SELECT current_timestamp,year_of_week(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan tahun dalam sistem tanggal minggu ISO, misalnya 2021.
Fungsi yow
Fungsi yow mengembalikan tahun untuk suatu tanggal sesuai sistem tanggal minggu ISO. Fungsi ini merupakan alias dari fungsi year_of_week.
Sintaks
yow(x)
Parameter
|
Parameter |
Deskripsi |
|
x |
Nilai yang akan dievaluasi, yang harus berupa tanggal atau timestamp. |
Jenis nilai kembalian
Fungsi ini mengembalikan nilai bertipe bigint.
Contoh
Contoh ini mengambil tanggal dan waktu saat ini menggunakan fungsi current_timestamp. Kemudian menggunakan fungsi yow untuk mengembalikan tahun sesuai sistem tanggal minggu ISO.
-
Pernyataan kueri (Debug)
* | SELECT current_timestamp, yow(current_timestamp) -
Hasil kueri dan analisis: Kolom _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan tahun saat ini berdasarkan sistem tanggal minggu ISO.
Fungsi interval waktu
Fungsi date_trunc
Fungsi date_trunc memotong ekspresi tanggal dan waktu ke satuan waktu tertentu. Fungsi ini umumnya digunakan untuk agregasi dan analisis berbasis waktu.
Sintaks
date_trunc(unit, x)
Parameter
|
Parameter |
Deskripsi |
|
unit |
Satuan waktu. Nilai yang valid adalah |
|
x |
Ekspresi tanggal dan waktu. |
Fungsi date_trunc hanya mengagregasi data pada interval waktu tetap, seperti per menit atau per jam. Untuk mengelompokkan data berdasarkan dimensi waktu fleksibel, seperti setiap 5 menit, gunakan operator modulo.
* | SELECT count(1) AS pv, __time__ - __time__ %300 AS time GROUP BY time LIMIT 100
Tipe kembalian
Tipe kembalian sama dengan tipe parameter x.
Contoh
Menghitung rata-rata waktu permintaan per menit, lalu mengelompokkan dan mengurutkan hasil berdasarkan waktu.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT date_trunc('minute', __time__) AS time, truncate (avg(request_time)) AS avg_time, current_date AS date GROUP BY time ORDER BY time DESC LIMIT 100 -
Hasil kueri dan analisis mencakup kolom time (diselaraskan per menit), kolom avg_time (rata-rata waktu permintaan), dan kolom date (tanggal saat ini).
Fungsi date_add
Fungsi date_add menambahkan atau mengurangi interval waktu tertentu dari nilai tanggal atau waktu.
Sintaks
date_add(unit, n, x)
Parameter
|
Parameter |
Deskripsi |
|
unit |
Satuan waktu. Nilai yang valid adalah |
|
n |
Interval waktu yang akan ditambahkan. Nilai negatif mengurangi interval tersebut. |
|
x |
Ekspresi tanggal dan waktu bertipe |
Tipe kembalian
Nilai timestamp.
Contoh
Kueri log dari kemarin.
-
Pernyataan kueri dan analisis (Debug)
* | SELECT * FROM log WHERE __time__ < to_unixtime(current_timestamp) AND __time__ > to_unixtime(date_add('day', -1, current_timestamp)) -
Hasil kueri dan analisis berisi data log kemarin, termasuk bidang seperti body_bytes_sent, client_ip, host, dan http_user_agent.
Fungsi date_diff
Fungsi date_diff mengembalikan selisih antara dua ekspresi tanggal atau waktu.
Sintaks
date_diff(unit, x, y)
Parameter
|
Parameter |
Deskripsi |
|
unit |
Satuan waktu. Nilai yang valid adalah |
|
x |
Ekspresi tanggal dan waktu bertipe |
|
y |
Ekspresi tanggal dan waktu bertipe |
Tipe kembalian
Nilai bigint.
Contoh
Menghitung durasi penggunaan server berdasarkan bidang UsageStartTime dan UsageEndTime.
-
Pernyataan kueri dan analisis
* | SELECT date_diff('hour', UsageStartTime, UsageEndTime) AS "时间差(小时)" -
Kueri mengembalikan selisih waktu sebesar 24 jam.
Fungsi pelengkapan time series
Fungsi time_series
Fungsi time_series mengisi titik data yang hilang dalam rentang waktu kueri.
Fungsi time_series harus digunakan bersama klausa GROUP BY dan ORDER BY. Klausa ORDER BY tidak mendukung pengurutan menurun (DESC). Jika fungsi ini digunakan dalam subkueri, kueri luar tidak boleh menyertakan klausa GROUP BY atau ORDER BY.
Sintaksis
time_series(x, window_time, format, padding_data)
Parameter
|
Parameter |
Deskripsi |
|
x |
Kolom waktu, seperti |
|
window_time |
Ukuran jendela. Satuannya dapat berupa |
|
format |
Format waktu untuk hasil. Untuk informasi selengkapnya, lihat Spesifikasi format. |
|
padding_data |
Menentukan cara mengisi nilai yang hilang. Nilai yang valid meliputi:
|
Tipe kembalian
Nilai bertipe varchar.
Contoh
Lengkapi data dengan granularitas waktu 2 jam dan isi nilai yang hilang dengan 0.
-
Pernyataan kueri dan analisis (Debug)
* | select * from (select time_series(__time__, '2h', '%Y-%m-%d %H:%i:%s', '0') as time, count(*) as num from log group by time order by time) a limit 100 -
Tabel berikut menampilkan hasil kueri dan analisis. Kueri mengembalikan kolom time dengan granularitas waktu 2 jam dan kolom num yang sesuai.
Penentu format
|
Format |
Deskripsi |
|
%a |
Nama hari dalam seminggu yang disingkat. Contohnya, |
|
%b |
Nama bulan yang disingkat. Contohnya, |
|
%c |
Bulan, sebagai angka desimal. Rentang: 1 hingga 12. |
|
%D |
Hari dalam bulan dengan akhiran ordinal bahasa Inggris, seperti |
|
%d |
Hari dalam bulan, sebagai angka desimal berpadding nol. Rentang: 01 hingga 31. |
|
%e |
Hari dalam bulan, sebagai angka desimal. Rentang: 1 hingga 31. |
|
%H |
Jam (format 24 jam), sebagai angka desimal berpadding nol. Rentang: 00 hingga 23. |
|
%h |
Jam (format 12 jam), sebagai angka desimal berpadding nol. Rentang: 01 hingga 12. |
|
%i |
Menit, sebagai angka desimal berpadding nol. Rentang: 00 hingga 59. |
|
%j |
Hari dalam tahun, sebagai angka desimal berpadding nol. Rentang: 001 hingga 366. |
|
%k |
Jam (format 24 jam), sebagai angka desimal. Rentang: 0 hingga 23. |
|
%l |
Jam (format 12 jam), sebagai angka desimal. Rentang: 1 hingga 12. |
|
%M |
Nama lengkap bulan. Contohnya, |
|
%m |
Bulan, sebagai angka desimal berpadding nol. Rentang: 01 hingga 12. |
|
%p |
|
|
%r |
Waktu dalam format 12 jam ( |
|
%S |
Detik, sebagai angka desimal berpadding nol. Rentang: 00 hingga 59. |
|
%s |
Jumlah detik sejak UNIX epoch. |
|
%f |
Mikrodetik, sebagai angka desimal berpadding nol. Rentang: 000000 hingga 999999. |
|
%T |
Waktu dalam format 24 jam ( |
|
%v |
Nomor minggu dalam tahun (01–53), dengan Senin sebagai hari pertama dalam minggu. |
|
%W |
Nama lengkap hari dalam seminggu. Contohnya, |
|
%Y |
Tahun empat digit, seperti |
|
%y |
Tahun dua digit, seperti |
|
%% |
Karakter literal |
Unit
|
Unit |
Description |
|
millisecond |
Millidetik |
|
second |
Kedua |
|
minute |
Menit |
|
hour |
Jam |
|
day |
Hari |
|
week |
Minggu |
|
month |
Bulan |
|
quarter |
Kuartal |
|
year |
Tahun |