全部产品
Search
文档中心

Tablestore:Fungsi SQL yang Didukung

更新时间:Jun 24, 2025

Topik ini menjelaskan fungsi SQL yang didukung saat Anda menggunakan tabel pemetaan yang dibuat untuk penyimpanan analitik guna mengquery data melalui pernyataan SELECT. Fungsi tersebut mencakup fungsi deret waktu, fungsi waktu, fungsi agregat, fungsi matematika, dan fungsi string.

Fungsi deret waktu

Fungsi

Tipe keluaran

Deskripsi

time_bin(_time,interval)

Datetime

Mengelompokkan data berdasarkan waktu ketika fungsi ini digunakan dengan group by. Sebagai contoh, Anda dapat menggunakan group by time_bin(_time,"10s") untuk mengelompokkan data dalam interval 10 detik. Anda juga dapat menggunakan fungsi agregat untuk menghitung data dalam kelompok tersebut.

Parameter _time menentukan kolom waktu deret waktu _time. Parameter interval bertipe String dan menentukan interval pengelompokan data. Parameter interval dapat ditentukan menggunakan singkatan dari berbagai unit waktu. Contoh: group by time_bin(_time,"10s"), group by time_bin(_time,"30min"), group by time_bin(_time,"1h"), group by time_bin(_time,"1d"), dan group by time_bin(_time,"10day").

tag_value_at(_tags,tag_key)

Varchar

Mengembalikan nilai yang sesuai dengan kunci yang ditentukan dalam tag deret waktu.

Parameter _tags menentukan kolom tag deret waktu _tags, dan parameter tag_key menentukan sebuah kunci dalam tag deret waktu.

Fungsi waktu

null

Saat menggunakan fitur penyimpanan analitik di konsol Tablestore, nilai keluaran tipe Datetime berada dalam zona waktu sistem (UTC+8 untuk Tiongkok, yaitu waktu Beijing). Saat menggunakan SDK Tablestore untuk memanfaatkan fitur penyimpanan analitik, nilai keluaran tipe Datetime dikonversi ke waktu UTC. Anda dapat menyesuaikan zona waktu sesuai kebutuhan bisnis. Topik ini menggunakan waktu Beijing (zona waktu UTC+8) sebagai contoh.

Fungsi

Tipe keluaran

Deskripsi

from_unixtime(unix_timestamp)

Datetime

Mengonversi timestamp Unix menjadi nilai tipe Datetime, mengonversi zona waktu nilai tersebut, dan mengembalikan nilai tersebut. Sebagai contoh, nilai kembali dari from_unixtime(1447430881) adalah '2015-11-13 10:08:01'.

Parameter unix_timestamp menentukan timestamp Unix yang akurat hingga detik.

from_unixtime(unix_timestamp,fsp)

Datetime

Mengonversi timestamp Unix menjadi nilai tipe Datetime, mengonversi zona waktu nilai tersebut, dan mengembalikan nilai tersebut dibulatkan ke fsp tempat desimal. Sebagai contoh, nilai kembali dari from_unixtime(1447430881.132216,3) adalah '2015-11-14 00:08:01.132'.

Parameter unix_timestamp menentukan timestamp Unix yang akurat hingga detik. Parameter fsp menentukan presisi, dengan nilai maksimum 6. Jika nilai fsp lebih besar dari 6, pengecualian akan dilemparkan. Jika nilai fsp kurang dari 0, nilai tidak dibulatkan.

from_unixtime_millis(unix_timestamp_millis)

Datetime

Mengonversi timestamp Unix menjadi nilai tipe Datetime, mengonversi zona waktu nilai tersebut, dan mengembalikan nilai tersebut. Sebagai contoh, nilai kembali dari from_unixtime_millis(1447430881231) adalah '2015-11-14 00:08:01.231000'.

Parameter unix_timestamp_millis menentukan timestamp Unix yang akurat hingga milidetik.

from_unixtime_micros(unix_timestamp_micros)

Datetime

Mengonversi timestamp Unix menjadi nilai tipe Datetime, mengonversi zona waktu nilai tersebut, dan mengembalikan nilai tersebut. Sebagai contoh, nilai kembali dari from_unixtime_micros(1447430881231781) adalah '2015-11-14 00:08:01.231781'.

Parameter unix_timestamp_micros menentukan timestamp Unix yang akurat hingga mikrodetik.

unix_timestamp()

Double

Mengembalikan timestamp Unix waktu saat ini yang akurat hingga detik dalam zona waktu saat ini.

unix_timestamp_millis()

Double

Mengembalikan timestamp Unix waktu saat ini yang dibulatkan ke detik terdekat akurat hingga milidetik dalam zona waktu saat ini. Sebagai contoh, nilai kembali dari unix_timestamp_millis() adalah 1686299575000.

Fungsi ini setara dengan unix_timestamp() *1000.

null

Timestamp yang dikembalikan oleh fungsi ini memiliki digit milidetik, tetapi presisinya dalam detik, bukan milidetik.

unix_timestamp_millis(datetime)

Double

Mengembalikan timestamp Unix akurat hingga milidetik dalam zona waktu datetime.

Parameter datetime menentukan waktu tipe Datetime.

unix_timestamp_millis(datestr)

Double

Mengembalikan timestamp Unix akurat hingga milidetik untuk tanggal yang sesuai dengan datestr dalam zona waktunya. Sebagai contoh, nilai kembali dari unix_timestamp_millis("2023-06-09 16:23:31.000000") adalah 1686299011000.000000.

Parameter datestr adalah string waktu yang harus secara eksplisit menentukan tahun, bulan, dan hari. Rentang nilainya adalah dari 1970-01-01 00:00:01.000000 UTC hingga 2038-01-19 03:14:07.999999 UTC.

null
  • Karena parameter datestr harus menentukan tahun, bulan, dan hari, jika parameter datestr yang tidak valid dimasukkan, seperti select unix_timestamp_millis("2023-07"), hasilnya akan null.

  • Jika nilai parameter datestr melebihi rentang nilai (1970-01-01 00:00:01.000000 UTC hingga 2038-01-19 03:14:07.999999 UTC), hasilnya akan 0.

unix_timestamp_micros()

Double

Mengembalikan timestamp Unix waktu saat ini pada tingkat mikrodetik dalam zona waktu saat ini. Presisinya dalam detik. Sebagai contoh, nilai kembali dari unix_timestamp_micros() adalah 1686299575000000.

Fungsi ini setara dengan unix_timestamp() *1000000.

null

Timestamp yang dikembalikan oleh fungsi ini memiliki digit mikrodetik, tetapi presisinya dalam detik, bukan mikrodetik.

unix_timestamp_micros(datetime)

Double

Mengembalikan timestamp Unix pada tingkat mikrodetik dalam zona waktu datetime.

Parameter datetime adalah waktu tipe Datetime.

unix_timestamp_micros(datestr)

Double

Mengembalikan timestamp Unix akurat hingga mikrodetik untuk tanggal dan waktu yang sesuai dengan datestr dalam zona waktunya. Sebagai contoh, nilai kembali dari unix_timestamp_micros("2023-06-09 16:23:31.000000") adalah 1686299011000000.000000.

Nilai parameter datestr adalah string waktu di mana tahun, bulan, dan hari harus ditentukan secara eksplisit. Rentang nilainya adalah dari 1970-01-01 00:00:01.000000 UTC hingga 2038-01-19 03:14:07.999999 UTC.

null
  • Saat Anda menentukan nilai untuk parameter datestr, Anda harus menentukan tahun, bulan, dan hari. Jika nilai yang tidak valid ditentukan untuk parameter datestr, seperti select unix_timestamp_micros("2023-07"), nilai kembali adalah null.

  • Jika nilai parameter datestr melebihi rentang nilai (1970-01-01 00:00:01.000000 UTC hingga 2038-01-19 03:14:07.999999 UTC), nilai kembali adalah 0.

timediff(expr1,expr2)

Time

Menghitung selisih antara parameter expr1 dan expr2.

Parameter expr dapat berupa tipe Datetime, tipe Time, atau tipe String.

addtime(expr1,expr2)

Sama dengan expr1

Menghitung jumlah dari parameter expr1 dan expr2.

Parameter expr1 dapat berupa tipe Datetime atau tipe Time, dan parameter expr2 hanya dapat berupa tipe Time.

date(datetime)

Date

Mengembalikan bagian tanggal dari datetime.

Nilai parameter datetime adalah waktu tipe Datetime.

hour(expr)

BigInt

Mengembalikan bagian jam dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Time.

minute(expr)

BigInt

Mengembalikan bagian menit dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Time.

second(expr)

BigInt

Mengembalikan bagian detik dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Time.

microsecond(expr)

BigInt

Mengembalikan bagian mikrodetik dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Time.

month(expr)

BigInt

Mengembalikan bagian bulan dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

year(expr)

BigInt

Mengembalikan bagian tahun dalam nilai parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

week(expr)

BigInt

Mengembalikan minggu dalam tahun di mana tanggal yang ditentukan oleh parameter expr jatuh.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

week(expr,mode)

BigInt

Mengembalikan minggu dalam tahun di mana tanggal yang ditentukan oleh parameter expr jatuh. Metode yang digunakan untuk menghitung minggu dalam tahun ditentukan oleh parameter mode.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date. Gambar berikut menunjukkan rentang nilai parameter mode (kompatibel dengan MySQL).

image.png

weekday(expr)

BigInt

Mengembalikan nilai indeks yang sesuai dengan hari dalam seminggu untuk tanggal tertentu. Nilai kembali 0 menunjukkan Senin, 1 menunjukkan Selasa, dan seterusnya, dengan 6 menunjukkan Minggu.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

weekofyear(expr)

BigInt

Mengembalikan minggu dalam tahun untuk tanggal tertentu. Rentang nilainya adalah dari 1 hingga 53. WEEKOFYEAR setara dengan WEEK(date,3).

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

dayofmonth(expr)

BigInt

Mengembalikan hari dalam bulan untuk tanggal tertentu. Nilai kembali berkisar dari 1 hingga 31.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

dayofweek(expr)

BigInt

Mengembalikan nilai indeks yang sesuai dengan hari dalam seminggu untuk tanggal tertentu. Nilai kembali 1 menunjukkan Minggu, 2 menunjukkan Senin, dan seterusnya, dengan 7 menunjukkan Sabtu.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

dayofyear(expr)

BigInt

Mengembalikan hari dalam tahun untuk tanggal tertentu. Nilai kembali berkisar dari 1 hingga 366.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

monthname(expr)

Varchar

Mengembalikan nama lengkap bulan untuk tanggal yang ditentukan oleh parameter expr.

Nilai parameter expr dapatberupa tipe Datetime atau tipe Date.

dayname(expr)

Varchar

Mengembalikan nama lengkap hari dalam seminggu untuk tanggal yang ditentukan oleh parameter expr.

Nilai parameter expr dapat berupa tipe Datetime atau tipe Date.

Fungsi agregat

Fungsi

Tipe keluaran

Deskripsi

count(expr)

Bigint

Mengembalikan jumlah baris di mana nilai kolom yang ditentukan tidak NULL di antara baris yang diambil oleh pernyataan SELECT. Hasilnya adalah nilai Bigint.

sum(expr)

Sama dengan tipe expr

Mengembalikan jumlah dari bidang expr.

Jika hasil query kosong, NULL dikembalikan.

avg(expr)

Double

Mengembalikan nilai rata-rata dari bidang expr.

Jika hasil query kosong, NULL dikembalikan.

min(expr)

Sama dengan tipe expr

Mengembalikan nilai minimum dari bidang expr.

Jika nilai bidang expr adalah string, outputnya adalah string leksikografis terkecil.

max(expr)

Sama dengan tipe expr

Mengembalikan nilai maksimum dari bidang expr.

Jika nilai bidang expr adalah string, outputnya adalah string leksikografis terbesar.

max_by(expr1,expr2)

Sama dengan tipe expr1

Mengembalikan nilai bidang expr1 pada baris di mana nilai bidang expr2 adalah yang terbesar.

Jika nilai bidang expr1 pada baris di mana nilai bidang expr2 adalah yang terbesar adalah NULL, NULL dikembalikan. Nilai bidang expr1 dan expr2 bisa berupa string secara bersamaan.

min_by(expr1,expr2)

Sama dengan tipe expr1

Mengembalikan nilai bidang expr1 pada baris di mana nilai bidang expr2 adalah yang terkecil.

Jika nilai bidang expr1 pada baris di mana nilai bidang expr2 adalah yang terkecil adalah NULL, NULL dikembalikan. Nilai bidang expr1 dan expr2 bisa berupa string secara bersamaan.

bit_and(expr)

Bigint

Mengembalikan hasil operasi AND bitwise pada bidang expr.

Jika hasil query kosong, bilangan bulat 64-bit dengan semua bit disetel ke 1 dikembalikan.

bit_or(expr)

Bigint

Mengembalikan hasil operasi OR bitwise pada bidang expr.

Jika hasil query kosong, bilangan bulat 64-bit dengan semua bit disetel ke 0 dikembalikan.

bit_xor(expr)

Bigint

Mengembalikan hasil operasi XOR bitwise pada bidang expr.

Jika hasil query kosong, bilangan bulat 64-bit dengan semua bit disetel ke 0 dikembalikan.

std(expr)

Double

Mengembalikan deviasi standar populasi dari bidang expr. std, stddev, dan stddev_pop adalah tiga fungsi yang setara.

Jika hasil query kosong, NULL dikembalikan.

stddev(expr)

Double

stddev_pop(expr)

Double

stddev_samp(expr)

Double

Mengembalikan deviasi standar sampel dari bidang expr.

Jika hasil query kosong, NULL dikembalikan.

var_pop(expr)

Double

Mengembalikan varians populasi dari bidang expr.

var_pop dan variance adalah dua fungsi yang setara.

Jika hasil query kosong, NULL dikembalikan.

variance(expr)

Double

var_samp(expr)

Double

Mengembalikan varians sampel dari bidang expr.

Jika hasil query kosong, NULL dikembalikan.

Fungsi matematika

Fungsi

Tipe keluaran

Deskripsi

mod(x,y)

Sama dengan tipe x

Mengembalikan sisa pembagian x oleh y.

Jika y adalah 0, 0 dikembalikan.

abs(x)

Sama dengan tipe x

Mengembalikan nilai absolut dari x.

ceil(x)

Sama dengan tipe x

Mengembalikan nilai integer terkecil yang tidak kurang dari x.

floor(x)

Sama dengan tipe x

Mengembalikan nilai integer terbesar yang tidak lebih dari x.

round(x)

Sama dengan tipe x

Mengembalikan nilai integer dari x yang dibulatkan ke integer terdekat.

round(x,y)

Sama dengan tipe x

Mengembalikan nilai x yang dibulatkan ke y tempat desimal.

acos(x)

Double

Mengembalikan arccosinus dari x, yaitu nilai y ketika cos(y)=x.

Jika nilai x tidak berada dalam rentang -1 hingga 1, NULL dikembalikan.

asin(x)

Double

Mengembalikan arcsinus dari x, yaitu nilai y ketika sin(y)=x.

Jika nilai x tidak berada dalam rentang -1 hingga 1, NULL dikembalikan.

atan(x)

Double

Mengembalikan arctangen dari x, yaitu nilai y ketika tan(y)=x.

atan2(x,y)

Double

Mengembalikan arctangen dari dua variabel x dan y. Prosesnya mirip dengan saat Anda menghitung arctangen dari y/x, kecuali bahwa tanda kedua parameter digunakan untuk menentukan kuadran hasilnya.

cos(x)

Double

Mengembalikan kosinus dari x. Nilai x dinyatakan dalam format radian.

sin(x)

Double

Mengembalikan sinus dari x. Nilai x dinyatakan dalam format radian.

tan(x)

Double

Mengembalikan tangen dari x. Nilai x dinyatakan dalam format radian.

exp(x)

Double

Mengembalikan nilai e (basis logaritma natural) dipangkatkan x.

pow(x,y)

Double

Mengembalikan nilai x dipangkatkan y.

radians(x)

Double

Mengembalikan parameter x yang dikonversi dari derajat ke radian.

null

π radian sama dengan 180 derajat.

sqrt(x)

Double

Mengembalikan akar kuadrat dari x.

sign(x)

Bigint

Mengembalikan -1, 0, atau 1 tergantung pada apakah nilai parameter x negatif, nol, atau positif.

pi()

Double

Mengembalikan nilai Pi, yaitu nilai π.

ln(x)

Double

Mengembalikan logaritma natural dari x, yaitu logaritma x dengan basis e.

Jika x kurang dari atau sama dengan 0, NULL dikembalikan.

log2(x)

Double

Mengembalikan logaritma biner dari x.

Jika x kurang dari atau sama dengan 0.0E0, NULL dikembalikan.

log10(x)

Double

Mengembalikan logaritma x dengan basis 10.

Jika x kurang dari atau sama dengan 0.0E0, NULL dikembalikan.

Fungsi string

Fungsi

Tipe keluaran

Deskripsi

length(str)

Bigint

Mengembalikan panjang string dalam byte.

concat(str1,str2...)

Varchar

Mengembalikan hasil penggabungan string. Anda dapat menentukan beberapa string.

to_base64(str)

Varchar

Mengembalikan hasil pengkodean Base64 dari string yang ditentukan oleh parameter str.

hex(str)

Bigint

Mengembalikan representasi string heksadesimal dari nilai parameter str, di mana setiap byte dari setiap karakter dalam nilai parameter str dikonversi menjadi dua digit heksadesimal.

hex(str)

Varchar

Mengembalikan representasi string heksadesimal dari x. Sebagai contoh, nilai kembali dari hex(255) adalah 'FF'.

instr(str1,substr)

Bigint

Mengembalikan posisi kemunculan pertama dari nilai parameter substr dalam string yang ditentukan oleh parameter str.

lower(str)

Varchar

Mengembalikan huruf kecil dari string yang ditentukan oleh parameter str.

ltrim(str)

Varchar

Mengembalikan string yang diperoleh setelah spasi di awal dihapus dari nilai parameter str.

lpad(str,len,padstr)

Varchar

Menambahkan nilai parameter str di sebelah kiri dengan nilai parameter padstr hingga panjangnya sesuai dengan nilai yang ditentukan oleh parameter len, dan mengembalikan string hasil padding tersebut.

Jika panjang nilai parameter str lebih besar dari nilai yang ditentukan oleh parameter len, nilai kembali dipotong menjadi panjang yang ditentukan oleh parameter len. Sebagai contoh, nilai kembali dari lpad("aa",3,"0") adalah "0aa", dan nilai kembali dari lpad("aa",1,"0") adalah "a".

rtrim(str)

Varchar

Mengembalikan string yang diperoleh setelah spasi di akhir dihapus dari nilai parameter str.

rpad(str,len,padstr)

Varchar

Menambahkan nilai parameter str di sebelah kanan dengan nilai parameter padstr hingga panjangnya sesuai dengan nilai yang ditentukan oleh parameter len, dan mengembalikan string hasil padding tersebut.

Jika panjang nilai parameter str lebih besar dari nilai yang ditentukan oleh parameter len, nilai kembali dipotong menjadi panjang yang ditentukan oleh parameter len.

trim(str,len,padstr)

Varchar

Mengembalikan string yang diperoleh setelah spasi di awal dan di akhir dihapus dari nilai parameter str.

substr(str,pos1,pos2)

Varchar

Mengekstrak sejumlah karakter tertentu yang ditentukan oleh parameter pos2 dari nilai parameter str dan mengembalikan hasil ekstraksi. Ekstraksi dimulai dari karakter yang ditentukan oleh parameter pos1.

Jika parameter pos2 tidak ditentukan dalam fungsi, semua karakter mulai dari karakter yang ditentukan oleh parameter pos1 diekstrak sebagai string yang dikembalikan.

replace(str,from_str,to_str)

Varchar

Mengembalikan string yang diperoleh setelah semua nilai parameter from_str dalam nilai parameter str diganti dengan nilai parameter to_str. Pencarian untuk nilai parameter from_str peka huruf besar-kecil.

reverse(str)

Varchar

Mengembalikan hasil yang diperoleh setelah nilai parameter str dibalik.

upper(str)

Varchar

Mengembalikan nilai parameter str dalam huruf besar.