日志服務提供單位換算函數,幫助您換算數據量或時間間隔的單位。本文介紹單位換算函數的基本語法及示例。
日志服務支持如下單位換算函數。
函數分類 | 函數名稱 | 語法 | 說明 | 支持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')
查詢和分析結果
示例2:body_bytes_sent字段表示發送給客戶端的字節數,單位為Byte。通過convert_data_size函數將字段值換算為以KB為單位的值。
查詢和分析語句
* | select convert_data_size(format_data_size(body_bytes_sent, 'KB'))
查詢和分析結果
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')
查詢和分析結果
示例2:body_bytes_sent字段表示發送給客戶端的字節數,單位為Byte。通過sum函數計算總字節數,再通過format_data_size函數將總字節數換算為以GB為單位的值。
字段樣例
body_bytes_sent:4619
查詢和分析語句
* | select format_data_size(sum(body_bytes_sent), 'GB')
查詢和分析結果
parse_data_size函數
parse_data_size函數用于對數據量單位進行換算,返回以Byte為單位的數據量。
語法
parse_data_size(x)
參數說明
參數 | 說明 |
x | 數據量,參數值為string類型。 |
返回值類型
decimal類型。
示例
將1024 KB換算為以Byte為單位的值。
查詢和分析語句
*| SELECT parse_data_size('1024KB')
查詢和分析結果
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')
查詢和分析結果
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'))
查詢和分析結果
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'))
查詢和分析結果
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'))
查詢和分析結果
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'))
查詢和分析結果
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')
查詢和分析結果
format_duration函數
format_duration函數用于對以秒為單位的時間間隔進行格式化,轉換為可讀的字符串類型。
語法
format_duration(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為double類型。 |
返回值類型
string類型。
示例
將235秒轉換為3 minutes, 55 seconds
格式。
查詢和分析語句
* | SELECT format_duration(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')
查詢和分析結果
to_days函數
to_days函數用于對時間間隔單位進行換算,轉換為以天為單位的時間間隔。
語法
to_days(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將192848s轉換為以天為單位的時間間隔。
查詢和分析語句
*| SELECT to_days('192848s')
查詢和分析結果
to_hours函數
to_hours函數用于對時間間隔單位進行換算,轉換為以小時為單位的時間間隔。
語法
to_hours(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將1.2天轉換為以小時為單位的時間間隔。
查詢和分析語句
* | SELECT to_hours('1.2d')
查詢和分析結果
to_microseconds函數
to_microseconds函數用于對時間間隔單位進行換算,轉換為以微秒為單位的時間間隔。
語法
to_microseconds(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將3600納秒轉換為以微秒為單位的時間間隔。
查詢和分析語句
* | SELECT to_microseconds('3600ns')
查詢和分析結果
to_milliseconds函數
to_milliseconds函數用于對時間間隔單位進行換算,轉換為以毫秒為單位的時間間隔。
語法
to_milliseconds(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將1.2秒轉換為以毫秒為單位的時間間隔。
查詢和分析語句
* | SELECT to_milliseconds('1.2s')
查詢和分析結果
to_minutes函數
to_minutes函數用于對時間間隔單位進行換算,轉換為以分鐘為單位的時間間隔。
語法
to_minutes(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將1.2小時轉換為以分鐘為單位的時間間隔。
查詢和分析語句
* | SELECT to_minutes('1.2h')
查詢和分析結果
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')
查詢和分析結果
to_nanoseconds函數
to_nanoseconds函數用于對時間間隔單位進行換算,轉換為以納秒為單位的時間間隔。
語法
to_nanoseconds(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將125毫秒轉換為以納秒為單位的時間間隔。
查詢和分析語句
* | SELECT to_nanoseconds('125ms')
查詢和分析結果
to_seconds函數
to_seconds函數用于對時間間隔單位進行換算,轉換為以秒為單位的時間間隔。
語法
to_seconds(x)
參數說明
參數 | 說明 |
x | 時間間隔,參數值為varchar類型。 |
返回值類型
double類型。
示例
將1340毫秒轉換為以秒為單位的時間間隔。
查詢和分析語句
* | SELECT to_seconds('1340ms')
查詢和分析結果