すべてのプロダクト
Search
ドキュメントセンター

Tablestore:サポートされる SQL 関数

最終更新日:Sep 10, 2026

このトピックでは、分析ストア向けのマッピングテーブルから SELECT 文でデータをクエリする際にサポートされる SQL 関数について説明します。これには、時系列関数、時間関数、集計関数、数学関数、文字列関数が含まれます。

時系列関数

関数

出力タイプ

説明

time_bin(_time, interval)

日時

この関数をgroup byと併用すると、時間に基づいてデータをバケット化します。 たとえば、 group by time_bin(_time, "10s") を使用して、10 秒単位でデータをバケット化できます。 バケット内のデータは、集計関数を使用して計算することもできます。

_time パラメーターには、時系列の時間列である _time を指定します。 interval パラメーターは文字列型で、データのバケット化を実行する間隔を指定します。 interval パラメーターには、各種時間単位の略語を指定できます。 例: group by time_bin(_time, "10s")、 group by time_bin(_time, "30min")、 group by time_bin(_time, "1h")、 group by time_bin(_time, "1d")、 group by time_bin(_time, "10day")。

tag_value_at(_tags, tag_key)

Varchar

時系列タグで指定されたキーに対応する値を返します。

_tags パラメーターには、時系列タグ列である _tags を指定します。 tag_key パラメーターには、時系列タグ内のキーを指定します。

時間関数

重要

Tablestore コンソールで分析ストア機能を使用する場合、Datetime 型の出力値はシステムタイムゾーン (中国では UTC+8、北京時間) で表示されます。Tablestore SDK を使用して分析ストア機能を使用する場合、Datetime 型の出力値は UTC 時間に変換されます。ビジネス要件に基づいてタイムゾーンを変換できます。このトピックでは、UTC+8 タイムゾーンである北京時間を例として使用します。

関数

出力タイプ

説明

from_unixtime(unix_timestamp)

Datetime

Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、from_unixtime(1447430881) の戻り値は '2015-11-14 00:08:01' です。

unix_timestamp パラメーターには、秒精度の Unix タイムスタンプを指定します。

from_unixtime(unix_timestamp,fsp)

Datetime

Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、fsp で指定した小数点以下の桁数に丸めた値を返します。例えば、from_unixtime(1447430881.132216, 3) の戻り値は '2015-11-14 00:08:01.132' です。

unix_timestamp パラメーターには、秒精度の Unix タイムスタンプを指定します。fsp パラメーターには精度を指定し、最大値は 6 です。fsp の値が 6 より大きい場合は例外が発生します。fsp の値が 0 未満の場合、値は丸められません。

from_unixtime_millis(unix_timestamp_millis)

Datetime

Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、from_unixtime_millis(1447430881231) の戻り値は '2015-11-14 00:08:01.231000' です。

unix_timestamp_millis パラメーターには、ミリ秒精度の Unix タイムスタンプを指定します。

from_unixtime_micros(unix_timestamp_micros)

Datetime

Unix タイムスタンプを Datetime 型の値に変換し、値のタイムゾーンを変換して、その値を返します。例えば、from_unixtime_micros(1447430881231781) の戻り値は '2015-11-14 00:08:01.231781' です。

unix_timestamp_micros パラメーターには、マイクロ秒精度の Unix タイムスタンプを指定します。

unix_timestamp()

Double

現在のタイムゾーンにおける現在時刻の秒精度の Unix タイムスタンプを返します。

unix_timestamp_millis()

Double

現在のタイムゾーンにおける現在時刻の Unix タイムスタンプを、最も近い秒に丸めた上でミリ秒精度で返します。例えば、unix_timestamp_millis() の戻り値は 1686299575000 です。

この関数は unix_timestamp() * 1000 と同等です。

重要

この関数が返すタイムスタンプにはミリ秒の桁がありますが、精度は秒単位であり、ミリ秒単位ではありません。

unix_timestamp_millis(datetime)

Double

datetime で指定されたタイムゾーンにおけるミリ秒精度の Unix タイムスタンプを返します。

datetime パラメーターには、Datetime 型の値を指定します。

unix_timestamp_millis(datestr)

Double

datestr で指定された日時のタイムゾーンにおけるミリ秒精度の Unix タイムスタンプを返します。例えば、unix_timestamp_millis("2023-06-09 16:23:31.000000") の戻り値は 1686299011000.000000 です。

datestr パラメーターは、年、月、日を明示的に指定する必要がある日時文字列です。値の範囲は 1970-01-01 00:00:01.000000 UTC から 2038-01-19 03:14:07.999999 UTC までです。

重要
  • datestr パラメーターには年、月、日を指定する必要があるため、select unix_timestamp_millis("2023-07") のように無効な datestr パラメーターを指定すると、結果は null になります。

  • datestr パラメーターの値が値の範囲 (1970-01-01 00:00:01.000000 UTC から 2038-01-19 03:14:07.999999 UTC) を超える場合、結果は 0 になります。

unix_timestamp_micros()

Double

現在のタイムゾーンにおける現在時刻のマイクロ秒レベルの Unix タイムスタンプを返します。精度は秒単位です。例えば、unix_timestamp_micros() の戻り値は 1686299575000000 です。

この関数は unix_timestamp() * 1000000 と同等です。

重要

この関数が返すタイムスタンプにはマイクロ秒の桁がありますが、精度は秒単位であり、マイクロ秒単位ではありません。

unix_timestamp_micros(datetime)

Double

datetime で指定されたタイムゾーンにおけるマイクロ秒レベルの Unix タイムスタンプを返します。

datetime パラメーターには、Datetime 型の値を指定します。

unix_timestamp_micros(datestr)

Double

datestr で指定された日時のタイムゾーンにおけるマイクロ秒精度の Unix タイムスタンプを返します。例えば、unix_timestamp_micros("2023-06-09 16:23:31.000000") の戻り値は 1686299011000000.000000 です。

datestr パラメーターの値は、年、月、日を明示的に指定する必要がある日時文字列です。値の範囲は 1970-01-01 00:00:01.000000 UTC から 2038-01-19 03:14:07.999999 UTC までです。

重要
  • datestr パラメーターに値を指定する場合は、年、月、日を指定する必要があります。select unix_timestamp_micros("2023-07") のように無効な値を datestr パラメーターに指定すると、戻り値は null になります。

  • datestr パラメーターの値が値の範囲 (1970-01-01 00:00:01.000000 UTC から 2038-01-19 03:14:07.999999 UTC) を超える場合、戻り値は 0 になります。

timediff(expr1,expr2)

Time

expr1 パラメーターと expr2 パラメーターの差を返します。

expr パラメーターは、Datetime 型、Time 型、または文字列型にできます。

addtime(expr1,expr2)

expr1 と同じ

expr1 パラメーターと expr2 パラメーターの合計を返します。

expr1 パラメーターは Datetime 型または Time 型にでき、expr2 パラメーターは Time 型のみ指定できます。

date(datetime)

Date

datetime の日付部分を返します。

datetime パラメーターには、Datetime 型の値を指定します。

hour(expr)

BigInt

expr の時間部分を返します。

expr パラメーターは、Datetime 型または Time 型にできます。

minute(expr)

BigInt

expr の分部分を返します。

expr パラメーターは、Datetime 型または Time 型にできます。

second(expr)

BigInt

expr の秒部分を返します。

expr パラメーターは、Datetime 型または Time 型にできます。

microsecond(expr)

BigInt

expr のマイクロ秒部分を返します。

expr パラメーターは、Datetime 型または Time 型にできます。

month(expr)

BigInt

expr の月部分を返します。

expr パラメーターは、Datetime 型または Date 型にできます。

year(expr)

BigInt

expr の年部分を返します。

expr パラメーターは、Datetime 型または Date 型にできます。

week(expr)

BigInt

expr パラメーターで指定された日付が該当する年間通算週を返します。

expr パラメーターは、Datetime 型または Date 型にできます。

week(expr,mode)

BigInt

expr パラメーターで指定された日付が該当する年間通算週を返します。年間通算週の計算方法は、mode パラメーターで指定します。

expr パラメーターは、Datetime 型または Date 型にできます。

image.png

weekday(expr)

BigInt

指定された日付の曜日に対応するインデックス値を返します。戻り値 0 は月曜日、1 は火曜日を示し、以降同様に 6 は日曜日を示します。

expr パラメーターは、Datetime 型または Date 型にできます。

weekofyear(expr)

BigInt

指定された日付の年間通算週を返します。値の範囲は 1 から 53 です。WEEKOFYEAR は WEEK(date, 3) と同等です。

expr パラメーターは、Datetime 型または Date 型にできます。

dayofmonth(expr)

BigInt

指定された日付の月内の日を返します。戻り値の範囲は 1 から 31 です。

expr パラメーターは、Datetime 型または Date 型にできます。

dayofweek(expr)

BigInt

指定された日付の曜日に対応するインデックス値を返します。戻り値 1 は日曜日、2 は月曜日を示し、以降同様に 7 は土曜日を示します。

expr パラメーターは、Datetime 型または Date 型にできます。

dayofyear(expr)

BigInt

指定された日付の年間通算日を返します。戻り値の範囲は 1 から 366 です。

expr パラメーターは、Datetime 型または Date 型にできます。

monthname(expr)

Varchar

expr パラメーターで指定された日付の月のフルネームを返します。

expr パラメーターは、Datetime 型または Date 型にできます。

dayname(expr)

Varchar

expr パラメーターで指定された日付の曜日のフルネームを返します。

expr パラメーターは、Datetime 型または Date 型にできます。

集計関数

関数

出力タイプ

説明

count(expr)

Bigint

SELECT 文で取得した行のうち、指定した列の値が NULL でない行数を返します。結果は Bigint 型です。

sum(expr)

expr と同じ型

expr の合計を返します。

クエリ結果が空の場合、NULL を返します。

avg(expr)

Double

expr の平均値を返します。

クエリ結果が空の場合、NULL を返します。

min(expr)

expr と同じ型

expr の最小値を返します。

expr の値が文字列の場合、出力は辞書順で最も小さい文字列です。

max(expr)

expr と同じ型

expr の最大値を返します。

expr の値が文字列の場合、出力は辞書順で最も大きい文字列です。

max_by(expr1,expr2)

expr1 と同じ型

expr2 の値が最大となる行の、expr1 の値を返します。

その行の expr1 の値が NULL の場合は、NULL を返します。expr1 と expr2 の値は、両方とも文字列にすることができます。

min_by(expr1,expr2)

expr1 と同じ型

expr2 の値が最小となる行の、expr1 の値を返します。

その行の expr1 の値が NULL の場合は、NULL を返します。expr1 と expr2 の値は、両方とも文字列にすることができます。

bit_and(expr)

Bigint

expr に対するビット単位の AND 演算の結果を返します。

クエリ結果が空の場合、すべてのビットが 1 に設定された 64 ビット整数を返します。

bit_or(expr)

Bigint

expr に対するビット単位の OR 演算の結果を返します。

クエリ結果が空の場合、すべてのビットが 0 に設定された 64 ビット整数を返します。

bit_xor(expr)

Bigint

expr に対するビット単位の XOR 演算の結果を返します。

クエリ結果が空の場合、すべてのビットが 0 に設定された 64 ビット整数を返します。

std(expr)

Double

expr の母集団の標準偏差を返します。std、stddev、stddev_pop は同義の関数です。

クエリ結果が空の場合、NULL を返します。

stddev(expr)

Double

stddev_pop(expr)

Double

stddev_samp(expr)

Double

expr の標本の標準偏差を返します。

クエリ結果が空の場合、NULL を返します。

var_pop(expr)

Double

expr の母集団の分散を返します。

var_pop と variance は同義の関数です。

クエリ結果が空の場合、NULL を返します。

variance(expr)

Double

var_samp(expr)

Double

expr の標本の分散を返します。

クエリ結果が空の場合、NULL を返します。

数学関数

関数

出力タイプ

説明

mod(x,y)

x と同じ型

x を y で割った剰余を返します。

y が 0 の場合、0 を返します。

abs(x)

x と同じ型

x の絶対値を返します。

ceil(x)

x と同じ型

x を切り上げた整数を返します。

floor(x)

x と同じ型

x を切り捨てた整数を返します。

round(x)

x と同じ型

x を最も近い整数に丸めた値を返します。

round(x,y)

x と同じ型

x を小数点以下 y 桁に丸めた値を返します。

acos(x)

Double

x のアークコサインを返します。これは cos(y)=x を満たす y の値です。

x の値が -1~1 の範囲にない場合、NULL を返します。

asin(x)

Double

x のアークサインを返します。これは sin(y)=x を満たす y の値です。

x の値が -1~1 の範囲にない場合、NULL を返します。

atan(x)

Double

x のアークタンジェントを返します。これは tan(y)=x を満たす y の値です。

atan2(x,y)

Double

2 つの変数 x と y のアークタンジェントを返します。y/x のアークタンジェントを計算する場合と同様ですが、両パラメーターの符号を使用して結果の象限を判定します。

cos(x)

Double

x のコサインを返します。x の単位はラジアンです。

sin(x)

Double

x のサインを返します。x の単位はラジアンです。

tan(x)

Double

x のタンジェントを返します。x の単位はラジアンです。

exp(x)

Double

e (自然対数の底) の x 乗の値を返します。

pow(x,y)

Double

x の y 乗の値を返します。

radians(x)

Double

x を度からラジアンに変換した値を返します。

重要

π ラジアンは 180 度に相当します。

sqrt(x)

Double

x の平方根を返します。

sign(x)

Bigint

パラメーター x の値が負、ゼロ、または正かどうかに応じて、-1、0、または 1 を返します。

pi()

Double

円周率、すなわち π の値を返します。

ln(x)

Double

x の自然対数、すなわち底が e の x の対数を返します。

x が 0 以下の場合、NULL を返します。

log2(x)

Double

x の二進対数を返します。

x が 0.0E0 以下の場合、NULL を返します。

log10(x)

Double

底が 10 の x の対数を返します。

x が 0.0E0 以下の場合、NULL を返します。

文字列関数

関数

出力タイプ

説明

length(str)

Bigint

文字列の長さをバイト単位で返します。

concat(str1,str2...)

Varchar

文字列の連結の結果を返します。複数の文字列を指定できます。

to_base64(str)

Varchar

str パラメーターで指定された文字列の Base64 エンコード結果を返します。

hex(str)

Varchar

str パラメーターの値について、各文字の各バイトを 2 桁の 16 進数に変換し、それらを連結した文字列表現を返します。

hex(number)

Varchar

数値 number の 16 進数の文字列表現を返します。たとえば、 hex(255) の戻り値は 'FF' です。

instr(str1,substr)

Bigint

str1 パラメーターで指定された文字列内で、substr パラメーターの値が最初に出現する位置を返します。

lower(str)

Varchar

str パラメーターで指定された文字列を小文字に変換して返します。

ltrim(str)

Varchar

str パラメーターの値から先頭のスペースを削除した文字列を返します。

lpad(str,len,padstr)

Varchar

str パラメーターの値を、その長さが len パラメーターで指定された値と一致するまで、左側から padstr パラメーターの値でパディングし、その結果の文字列を返します。

str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。たとえば、 lpad("aa",3,"0") の戻り値は "0aa" で、 lpad("aa",1,"0") の戻り値は "a" です。

rtrim(str)

Varchar

str パラメーターの値から末尾のスペースを削除した文字列を返します。

rpad(str,len,padstr)

Varchar

str パラメーターの値を、その長さが len パラメーターで指定された値と一致するまで、右側から padstr パラメーターの値でパディングし、その結果の文字列を返します。

str パラメーターの値の長さが len パラメーターで指定された値より大きい場合、戻り値は len パラメーターで指定された長さに切り詰められます。

trim(str)

Varchar

str パラメーターの値から先頭と末尾のスペースを削除した文字列を返します。

substr(str,pos1,pos2)

Varchar

str パラメーターの値から、pos1 パラメーターで指定された文字から始まる、pos2 パラメーターで指定された文字数の文字を抽出して返します。

関数で pos2 パラメーターが指定されていない場合、pos1 パラメーターで指定された文字以降のすべての文字を抽出して返します。

replace(str,from_str,to_str)

Varchar

str パラメーターの値に含まれる from_str パラメーターのすべての値を to_str パラメーターの値に置換した文字列を返します。 from_str パラメーターの検索はケースセンシティブです。

reverse(str)

Varchar

str パラメーターの値を反転した文字列を返します。

upper(str)

Varchar

str パラメーターの値を大文字に変換して返します。