日志服务提供单位换算函数,帮助您换算数据量或时间间隔的单位。本文介绍单位换算函数的基本语法及示例。
日志服务支持如下单位换算函数。
|
函数分类 |
函数名称 |
语法 |
说明 |
支持SQL |
支持SPL |
|
数据量单位转换函数 |
convert_data_size(x) |
对数据量单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的数据量。返回类型为string。例如将1024 KB换算为1 MB,1024 MB换算为1 GB。 |
√ |
× |
|
|
convert_data_size(x, unit) |
对数据量单位进行换算,返回使用指定单位表示的数据量。返回类型为string。 |
√ |
× |
||
|
format_data_size(x, unit) |
对Byte单位进行换算,返回使用指定单位表示的数据量。返回类型为string。 |
√ |
× |
||
|
parse_data_size(x) |
对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为decimal。 |
√ |
× |
||
|
to_data_size_B(x) |
对数据量单位进行换算,返回以Byte为单位的数据量。返回类型为double。 |
√ |
× |
||
|
to_data_size_KB(x) |
对数据量单位进行换算,返回以KB为单位的数据量。返回类型为double。 |
√ |
× |
||
|
to_data_size_MB(x) |
对数据量单位进行换算,返回以MB为单位的数据量。返回类型为double。 |
√ |
× |
||
|
to_data_size_GB(x) |
对数据量单位进行换算,返回以GB为单位的数据量。返回类型为double。 |
√ |
× |
||
|
to_data_size_TB(x) |
对数据量单位进行换算,返回以TB为单位的数据量。返回类型为double。 |
√ |
× |
||
|
to_data_size_PB(x) |
对数据量单位进行换算,返回以PB为单位的数据量。返回类型为double。 |
√ |
× |
||
|
时间间隔单位转换函数 |
format_duration(x) |
对以秒为单位的时间间隔进行格式化,转换为可读的字符串类型。 |
√ |
× |
|
|
parse_duration(x) |
对时间间隔进行格式化,转换为 |
√ |
× |
||
|
to_days(x) |
对时间间隔单位进行换算,转换为以天为单位的时间间隔。 |
√ |
× |
||
|
to_hours(x) |
对时间间隔单位进行换算,转换为以小时为单位的时间间隔。 |
√ |
× |
||
|
to_microseconds(x) |
对时间间隔单位进行换算,转换为以微秒为单位的时间间隔。 |
√ |
× |
||
|
to_milliseconds(x) |
对时间间隔单位进行换算,转换为以毫秒为单位的时间间隔。 |
√ |
× |
||
|
to_minutes(x) |
对时间间隔单位进行换算,转换为以分钟为单位的时间间隔。 |
√ |
× |
||
|
to_most_succinct_time_unit(x) |
对时间间隔单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的时间间隔。 |
√ |
× |
||
|
to_nanoseconds(x) |
对时间间隔单位进行换算,转换为以纳秒为单位的时间间隔。 |
√ |
× |
||
|
to_seconds(x) |
对时间间隔单位进行换算,转换为以秒为单位的时间间隔。 |
√ |
× |
convert_data_size函数
convert_data_size函数用于对数据量单位进行换算。
语法
-
对数据量单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的数据量。
convert_data_size(x) -
对数据量单位进行换算,返回使用指定单位表示的数据量。
convert_data_size(x, unit)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
|
unit |
数据的存储单位,取值范围为KB、MB、GB、PB、TB、EB、ZB、YB。 |
返回值类型
string类型。
示例
-
示例1:将1200 KB换算为其他数据单位的值。
-
查询和分析语句
* | SELECT convert_data_size('1200KB') -
查询和分析结果返回结果为
1.17MB。
-
-
示例2:body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过convert_data_size函数将字段值换算为以KB为单位的值。
-
查询和分析语句
* | select convert_data_size(format_data_size(body_bytes_sent, 'KB')) -
查询和分析结果中,
_col0列返回值分别为1.74KB、11.38KB、4.12KB、1.19KB,表示将body_bytes_sent字段值经format_data_size转换为KB单位后再通过convert_data_size得到的数据大小。
-
format_data_size函数
format_data_size函数用于对Byte单位进行换算,返回使用指定单位表示的数据量。
语法
format_data_size(x, unit)
参数说明
|
参数 |
说明 |
|
x |
以Byte为单位的数据量,参数值为bigint类型。 |
|
unit |
数据的存储单位,取值范围为KB、MB、GB、PB、TB、EB、ZB、YB。 |
返回值类型
string类型。
示例
-
示例1:body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过format_data_size函数将字段值换算为以KB为单位的值。
-
字段样例
body_bytes_sent:4619 -
查询和分析语句
* | select format_data_size(body_bytes_sent, 'KB') -
查询和分析结果中,
_col0列返回值分别为 7.33KB、2.19KB、4.16KB、4.84KB。
-
-
示例2:body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过sum函数计算总字节数,再通过format_data_size函数将总字节数换算为以GB为单位的值。
-
字段样例
body_bytes_sent:4619 -
查询和分析语句
* | select format_data_size(sum(body_bytes_sent), 'GB') -
查询和分析结果:
_col0列的值为0.73GB,表示body_bytes_sent字段值的总和经格式化后为 0.73 GB。
-
parse_data_size函数
parse_data_size函数用于对数据量单位进行换算,返回以Byte为单位的数据量。
语法
parse_data_size(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
decimal类型。
示例
将1024 KB换算为以Byte为单位的值。
-
查询和分析语句
*| SELECT parse_data_size('1024KB') -
查询和分析结果返回值为
1048576,即 1024 KB 转换为字节后的数值。
to_data_size_B函数
to_data_size_B函数用于对数据量单位进行换算,返回以Byte为单位的数据量。
语法
to_data_size_B(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
将1024 KB换算为以Byte为单位的值。
-
查询和分析语句
* | select to_data_size_B('1024KB') -
查询和分析结果返回结果为
1048576.0,即 1024 KB 对应 1048576.0 Bytes。
to_data_size_KB函数
to_data_size_KB函数用于对数据量单位进行换算,返回以KB为单位的数据量。
语法
to_data_size_KB(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过to_data_size_KB函数将字段值换算为以KB为单位的值。
-
查询和分析语句
* | select to_data_size_KB(format_data_size(body_bytes_sent, 'KB')) -
查询和分析结果返回
_col0列,值依次为 3.52、4.25、3.2、1.69。
to_data_size_MB函数
to_data_size_MB函数用于对数据量单位进行换算,返回以MB为单位的数据量。
语法
to_data_size_MB(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过to_data_size_MB函数将总字节数换算为以MB为单位的值。
-
查询和分析语句
* | select to_data_size_MB(format_data_size(sum(body_bytes_sent), 'KB')) -
查询和分析结果返回
814.49,即body_bytes_sent总和转换为 MB 后的数值。
to_data_size_GB函数
to_data_size_GB函数用于对数据量单位进行换算,返回以GB为单位的数据量。
语法
to_data_size_GB(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过to_data_size_GB函数将总字节数换算为以GB为单位的值。
-
查询和分析语句
* | select to_data_size_GB(format_data_size(sum(body_bytes_sent), 'KB')) -
查询和分析结果返回
0.79,即发送字节总量(body_bytes_sent)转换为 GB 后的值。
to_data_size_TB函数
to_data_size_TB函数用于对数据量单位进行换算,返回以TB为单位的数据量。
语法
to_data_size_TB(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
body_bytes_sent字段表示发送给客户端的字节数,单位为Byte。通过to_data_size_TB函数将总字节数换算为以TB为单位的值。
-
查询和分析语句
* | select to_data_size_TB(format_data_size(sum(body_bytes_sent), 'KB')) -
查询和分析结果返回单列
_col0,值为0.01,表示body_bytes_sent总和转换为 TB 后的结果。
to_data_size_PB函数
to_data_size_PB函数用于对数据量单位进行换算,返回以PB为单位的数据量。
语法
to_data_size_PB(x)
参数说明
|
参数 |
说明 |
|
x |
数据量,参数值为string类型。 |
返回值类型
double类型。
示例
将1048576 GB换算为以PB为单位的值。
-
查询和分析语句
*| SELECT to_data_size_PB('1048576GB') -
查询和分析结果返回结果为
1.0,表示 1048576 GB 等于 1.0 PB。
format_duration函数
format_duration函数用于对以秒为单位的时间间隔进行格式化,转换为可读的字符串类型。
语法
format_duration(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为double类型。 |
返回值类型
string类型。
示例
将235秒转换为3 minutes, 55 seconds格式。
-
查询和分析语句
* | SELECT format_duration(235) -
查询和分析结果:返回结果 _col0 列的值为
3 minutes, 55 seconds,表示将 235 秒格式化为时间间隔字符串。
parse_duration函数
parse_duration函数用于对时间间隔进行格式化,转换为0 00:00:00.000格式。
语法
parse_duration(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为string类型。 |
返回值类型
interval类型。
示例
将1340毫秒转换为0 00:00:01.340格式。
-
查询和分析语句
* | SELECT parse_duration('1340ms') -
查询和分析结果返回结果为
0 00:00:01.340,即将 1340 毫秒转换为标准时间间隔格式。
to_days函数
to_days函数用于对时间间隔单位进行换算,转换为以天为单位的时间间隔。
语法
to_days(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将192848s转换为以天为单位的时间间隔。
-
查询和分析语句
*| SELECT to_days('192848s') -
查询和分析结果中,
_col0的值为2,表示192848秒转换为天数后结果为2天。
to_hours函数
to_hours函数用于对时间间隔单位进行换算,转换为以小时为单位的时间间隔。
语法
to_hours(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将1.2天转换为以小时为单位的时间间隔。
-
查询和分析语句
* | SELECT to_hours('1.2d') -
查询和分析结果返回结果为
29。
to_microseconds函数
to_microseconds函数用于对时间间隔单位进行换算,转换为以微秒为单位的时间间隔。
语法
to_microseconds(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将3600纳秒转换为以微秒为单位的时间间隔。
-
查询和分析语句
* | SELECT to_microseconds('3600ns') -
查询和分析结果为
4(列名为_col0)。
to_milliseconds函数
to_milliseconds函数用于对时间间隔单位进行换算,转换为以毫秒为单位的时间间隔。
语法
to_milliseconds(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将1.2秒转换为以毫秒为单位的时间间隔。
-
查询和分析语句
* | SELECT to_milliseconds('1.2s') -
查询和分析结果:返回结果
_col0的值为1200,即 1.2 秒对应 1200 毫秒。
to_minutes函数
to_minutes函数用于对时间间隔单位进行换算,转换为以分钟为单位的时间间隔。
语法
to_minutes(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将1.2小时转换为以分钟为单位的时间间隔。
-
查询和分析语句
* | SELECT to_minutes('1.2h') -
查询和分析结果返回结果为
72。
to_most_succinct_time_unit函数
to_most_succinct_time_unit函数用于对时间间隔单位进行换算,系统自动判断最优的换算单位,返回使用最优单位表示的时间。
语法
to_most_succinct_time_unit(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
varchar类型。
示例
将1340ms转换为以秒为单位的时间间隔。
-
查询和分析语句
* | SELECT to_most_succinct_time_unit('1340ms') -
查询和分析结果为
1.34s。
to_nanoseconds函数
to_nanoseconds函数用于对时间间隔单位进行换算,转换为以纳秒为单位的时间间隔。
语法
to_nanoseconds(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将125毫秒转换为以纳秒为单位的时间间隔。
-
查询和分析语句
* | SELECT to_nanoseconds('125ms') -
查询和分析结果返回结果为
125000000。
to_seconds函数
to_seconds函数用于对时间间隔单位进行换算,转换为以秒为单位的时间间隔。
语法
to_seconds(x)
参数说明
|
参数 |
说明 |
|
x |
时间间隔,参数值为varchar类型。 |
返回值类型
double类型。
示例
将1340毫秒转换为以秒为单位的时间间隔。
-
查询和分析语句
* | SELECT to_seconds('1340ms') -
查询和分析结果返回结果为
1。