All Products
Search
Document Center

Simple Log Service:Fungsi tanggal dan waktu

Last Updated:Jun 22, 2026

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.

Penting
  • 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, sedangkan status atau "status" merepresentasikan field log status.

Jenis fungsi

Nama fungsi

Sintaks

Deskripsi

SQL

SPL

Fungsi tanggal dan waktu

fungsi current_date

current_date

Mengembalikan tanggal saat ini.

×

fungsi current_time

current_time

Mengembalikan waktu saat ini dan zona waktunya.

×

fungsi current_timestamp

current_timestamp

Mengembalikan tanggal, waktu, dan zona waktu saat ini.

×

fungsi current_timezone

current_timezone()

Mengembalikan zona waktu saat ini.

×

fungsi date

date(x)

Mengembalikan bagian tanggal dari ekspresi date atau timestamp.

×

fungsi date_format

date_format(x, format)

Mengonversi ekspresi timestamp menjadi string dalam format yang ditentukan.

fungsi date_parse

date_parse(x, format)

Mengurai ekspresi string menjadi timestamp menggunakan format yang ditentukan.

fungsi from_iso8601_date

from_iso8601_date(x)

Mengonversi string tanggal ISO 8601 menjadi nilai tanggal.

×

fungsi from_iso8601_timestamp

from_iso8601_timestamp(x)

Mengonversi string timestamp ISO 8601 menjadi nilai timestamp.

×

fungsi from_unixtime

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.

×

fungsi localtime

localtime

Mengembalikan waktu lokal.

×

fungsi localtimestamp

localtimestamp

Mengembalikan tanggal dan waktu lokal.

×

fungsi now

now()

Mengembalikan tanggal dan waktu saat ini.

Fungsi now merupakan alias dari fungsi current_timestamp.

×

fungsi to_iso8601

to_iso8601(x)

Mengonversi ekspresi tanggal atau timestamp menjadi string berformat ISO 8601.

×

fungsi to_unixtime

to_unixtime(x)

Mengonversi ekspresi stempel waktu menjadi stempel waktu UNIX.

fungsi current_unixtimestamp

current_unixtimestamp()

Mengembalikan stempel waktu UNIX sistem saat ini.

×

Fungsi ekstraksi tanggal dan waktu

fungsi day

day(x)

Mengekstraksi hari dalam bulan dari ekspresi tanggal atau timestamp.

Fungsi day merupakan alias dari fungsi day_of_month.

×

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.

×

fungsi day_of_week

day_of_week(x)

Mengekstraksi hari dalam minggu dari ekspresi tanggal atau timestamp.

Fungsi day_of_week merupakan alias dari fungsi dow.

fungsi day_of_year

day_of_year(x)

Mengekstraksi hari dalam tahun dari ekspresi tanggal atau timestamp.

Fungsi day_of_year merupakan alias dari fungsi doy.

fungsi dow

dow(x)

Mengekstraksi hari dalam minggu dari ekspresi tanggal atau timestamp.

Fungsi dow merupakan alias untuk fungsi day_of_week.

fungsi doy

doy(x)

Mengekstraksi hari dalam tahun dari ekspresi tanggal atau timestamp.

Fungsi doy merupakan alias dari fungsi day_of_year.

fungsi extract

extract(field from x)

Mengekstraksi bagian tertentu, seperti komponen tanggal atau waktu, dari ekspresi tanggal atau timestamp sesuai yang ditentukan oleh field.

×

fungsi hour

hour(x)

Mengekstraksi jam dalam sehari (dalam format 24 jam) dari ekspresi tanggal atau timestamp.

minute function

minute(x)

Mengekstraksi menit dalam jam dari ekspresi tanggal atau timestamp.

fungsi month

month(x)

Mengekstraksi bulan dalam tahun dari ekspresi tanggal atau timestamp.

fungsi quarter

quarter(x)

Mengembalikan kuartal tahun dari ekspresi tanggal atau timestamp.

fungsi kedua

second(x)

Mengekstraksi detik dari menit pada ekspresi tanggal atau timestamp.

fungsi timezone_hour

timezone_hour(x)

Mengembalikan komponen jam dari offset zona waktu.

×

fungsi timezone_minute

timezone_minute(x)

Mengembalikan komponen menit dari offset zona waktu.

×

fungsi week

week(x)

Mengembalikan minggu dalam tahun dari ekspresi tanggal atau timestamp.

Fungsi week merupakan alias dari fungsi week_of_year.

×

fungsi week_of_year

week_of_year(x)

Mengembalikan minggu dalam tahun untuk tanggal tertentu.

Fungsi week_of_year merupakan alias dari fungsi week.

×

fungsi year

year(x)

Mengekstraksi tahun dari ekspresi tanggal atau timestamp.

fungsi year_of_week

year_of_week(x)

Mengekstraksi tahun berdasarkan penomoran minggu ISO dari ekspresi tanggal atau timestamp.

Fungsi year_of_week merupakan alias dari fungsi yow.

fungsi yow

yow(x)

Mengekstrak tahun penomoran minggu ISO dari tanggal target.

Fungsi yow merupakan alias untuk fungsi year_of_week.

Fungsi rentang waktu

fungsi date_trunc

date_trunc(unit, x)

Memotong ekspresi tanggal atau timestamp ke satuan yang ditentukan, seperti millisecond, second, minute, hour, day, month, atau year.

×

fungsi date_add

date_add(unit, N, x)

Menambahkan rentang sebesar N unit ke x.

fungsi date_diff

date_diff(unit, x, y)

Mengembalikan selisih antara dua ekspresi timestamp, x dan y, yang dinyatakan dalam satuan yang ditentukan.

Fungsi pelengkapan time series

fungsi 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 _col0 mengembalikan 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 _col0 mengembalikan 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 date atau timestamp.

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 _col0 mengembalikan timestamp lengkap, sedangkan kolom _col1 mengembalikan 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 timestamp.

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 analisisdate_format

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 StartTime sebesar 2021-07-21 20:00:00.000, EndTime sebesar 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 _col0 mengembalikan 2020-05-03, yang merupakan nilai date.

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 Asia/Shanghai.

hours

Komponen jam dari offset zona waktu, seperti +07 atau -09.

minutes

Komponen menit dari offset zona waktu, seperti +30 atau -45.

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 _col0 mengembalikan 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 _col0 mengembalikan 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 date atau timestamp.

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 ISO8601 mengembalikan 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 timestamp.

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_unixtime untuk 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 timestamp atau date.

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 _col0 mengembalikan tanggal saat ini, dan kolom _col1 mengembalikan 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 year, quarter, month, week, day, day_of_month, day_of_week, dow, day_of_year, doy, year_of_week, yow, hour, minute, second, timezone_hour, dan timezone_minute.

x

Ekspresi yang mengembalikan nilai bertipe date, time, timestamp, atau interval (varchar(9)).

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 _col0 mengembalikan 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 date atau timestamp.

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 _col0 mengembalikan timestamp saat ini, dan kolom _col1 mengembalikan 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 millisecond, second, minute, hour, day, week, month, quarter, dan year. Untuk informasi lebih lanjut, lihat Unit Description.

x

Ekspresi tanggal dan waktu.

Catatan

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 millisecond, second, minute, hour, day, week, month, quarter, dan year. Untuk informasi lebih lanjut, lihat Unit Description.

n

Interval waktu yang akan ditambahkan. Nilai negatif mengurangi interval tersebut.

x

Ekspresi tanggal dan waktu bertipe timestamp.

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 millisecond, second, minute, hour, day, week, month, quarter, dan year. Untuk informasi lebih lanjut, lihat Unit Description.

x

Ekspresi tanggal dan waktu bertipe timestamp.

y

Ekspresi tanggal dan waktu bertipe timestamp.

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.

Penting

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 __time__. Nilai kolom tersebut harus bertipe long atau timestamp.

window_time

Ukuran jendela. Satuannya dapat berupa s (detik), m (menit), h (jam), atau d (hari). Contoh: 2h, 5m, dan 3d.

format

Format waktu untuk hasil. Untuk informasi selengkapnya, lihat Spesifikasi format.

padding_data

Menentukan cara mengisi nilai yang hilang. Nilai yang valid meliputi:

  • 0: Mengisi nilai yang hilang dengan 0.

  • null: Mengisi nilai yang hilang dengan null.

  • last: Mengisi nilai yang hilang dengan nilai dari titik waktu sebelumnya.

  • next: Mengisi nilai yang hilang dengan nilai dari titik waktu berikutnya.

  • avg: Mengisi nilai yang hilang dengan rata-rata nilai dari dua titik waktu di sekitarnya.

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, Sun dan Sat.

%b

Nama bulan yang disingkat. Contohnya, Jan dan Dec.

%c

Bulan, sebagai angka desimal. Rentang: 1 hingga 12.

%D

Hari dalam bulan dengan akhiran ordinal bahasa Inggris, seperti 1st, 2nd, atau 3rd.

%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, January dan December.

%m

Bulan, sebagai angka desimal berpadding nol. Rentang: 01 hingga 12.

%p

AM atau PM.

%r

Waktu dalam format 12 jam (hh:mm:ss AM/PM).

%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 (hh:mm:ss).

%v

Nomor minggu dalam tahun (01–53), dengan Senin sebagai hari pertama dalam minggu.

%W

Nama lengkap hari dalam seminggu. Contohnya, Sunday dan Saturday.

%Y

Tahun empat digit, seperti 2020.

%y

Tahun dua digit, seperti 20.

%%

Karakter literal %.

Unit

Unit

Description

millisecond

Millidetik

second

Kedua

minute

Menit

hour

Jam

day

Hari

week

Minggu

month

Bulan

quarter

Kuartal

year

Tahun