SQL Syntax

BLS

  • Function Release Records
  • Product Description
    • Usage restrictions
    • Product Introduction
  • Product pricing
  • Quick Start
    • Introduction
    • Install agent
    • Create LogStore
    • Create Transmission Task
    • Log Analysis and Alerting
    • Create Delivery Task
  • Operation guide
    • Baidu Intelligent Cloud Environment Preparation
    • Overview
    • Identity and access management
    • Logset Management
    • Agent
      • Install Agent on Host
      • Install Agent in K8s Environment
      • Agent Management
      • Agent Release Version
      • Set Agent Startup Parameters
    • Log Collection
      • Transmission Task Collection
        • Create Transmission Task
        • Manage Transmission Task
      • Uploading Logs Using Kafka Protocol
    • Query analysis
      • Log query
      • SQL Syntax
      • Search Syntax
    • Dashboard
      • Overview
      • Management Dashboard
      • Management Dashboard Charts
    • Alarm management
      • Alert Overview
      • Alarm strategy
        • Management alarm strategy
        • Trigger conditions
      • Alarm history
      • Alert execution statistics
      • Alarm notification
        • Alarm Notification Template
        • Alarm callback
    • Data processing
      • Log Delivery
        • Log Delivery Overview
        • Create Delivery Task
        • Manage Delivery Task
      • Scheduled SQL Analysis
        • Manage Scheduled SQL Analysis Task
        • Create Scheduled SQL Analysis Task
      • Real-Time Consumption
      • Data processing
        • Data processing
          • Overview of data processing functions
          • Process control function
          • Mapping enrichment functions
          • Event operation functions
          • Field operation functions
          • Field value extraction functions
    • Log Applications
      • Intelligent Diagnostics
  • Best Practices
    • Use Year-Over-Year and Month-Over-Month as Alert Trigger Conditions
    • BLS Integration with Kibana
    • Use BLS via Grafana
  • Development Guide
    • API Reference
      • API function release records
      • API Overview
      • Interface Overview
      • General Description
      • Service domain
      • Common error codes
      • Terminology
      • Project Related APIs
        • Create Project
        • Update Project
        • Describe Project
        • Delete Project
        • List Project
      • LogStore Related APIs
        • Create LogStore
        • Update LogStore
        • Delete LogStore
        • Describe LogStore
        • Batch Get LogStore
        • List LogStore
      • LogStream Related APIs
        • List LogStream
      • LogRecord Related APIs
        • Push log PushLogRecord
        • Obtain logrecord PullLogRecord
        • Search analysis log QueryLogRecord
        • Histogram API QueryLogHistogram
      • Fast Query FastQuery Related Interfaces
        • Create Fast Query CreateFastQuery
        • Update Fast Query UpdateFastQuery
        • Delete Fast Query DeleteFastQuery
        • Get Fast Query Details DescribeFastQuery
        • Get Fast Query List ListFastQuery
      • Index Related APIs
        • Create Index
        • Update Index
        • Delete Index
        • Describe Index
      • Log Shipper LogShipper Related Interfaces
        • Create Log Shipper
        • Update Log Shipper
        • Set Single Log Shipper Status
        • Delete Single Log Shipper
        • Bulk Delete Log Shipper
        • List Log Shipper Records
        • List Log Shipper
        • Bulk Set Log Shipper Status
        • Get Log Shipper
      • Alarm-Related Interfaces
        • CreateAlarmPolicy
        • UpdateAlarmPolicy
        • DeleteAlarmPolicy
        • ValidateAlarmCondition
        • ValidateAlarmPolicySQL
        • EnableAlarmPolicy
        • DescribeAlarmRecord
        • DisableAlarmPolicy
        • DescribeAlarmPolicy
        • ListAlarmPolicy
        • ListAlarmRecord
        • ListAlarmExecutionStats
        • ListAlarmExecutions
      • LogStore Template-Related Interfaces
        • CreateLogStoreTemplate
        • UpdateLogStoreTemplate
        • DeleteLogStoreTemplates
        • DescribeLogStoreTemplates
        • DescribeLogStoreTemplate
      • Download Log Download Related Interfaces
        • Create Download Task CreateDownloadTask
        • Get Download Task List ListDownloadTask
        • Delete Download Task DeleteDownloadTask
        • Get Download Task Address GetDownloadTaskLink
        • Get Download Task Details DescribeDownloadTask
      • LogAlarm Related Interfaces
        • SetLogAlarmStatus
        • deleteLogAlarm
        • createLogAlarm
        • listLogAlarm
        • updateLogAlarm
        • BulkDeleteLogAlarm
        • PreviewAlarmLogRecord
        • getLogAlarm
        • BulkSetLogAlarmStatus
      • Transmission Task Related Interfaces
        • Create Task CreateTask
        • UpdateTask
      • Interfaces Compatible with Elasticsearch
        • ResolveIndex
        • FieldCaps
        • TermsEnum
        • AsyncSearch
    • SDK Reference
      • Go SDK
        • Overview
        • Initialization
        • Version Release Records
        • Project Operations
        • LogStore Operations
        • Install the SDK Package
        • LogStream Operations
        • LogRecord Operations
        • FastQuery Operations
        • LogShipper Operations
        • Index Operations
        • Download Task Operations
      • Java SDK
        • Overview
        • Install the SDK Package
        • LogRecord Operations
      • iOS SDK
        • Overview
        • Quick start
        • Version Release Records
      • Android SDK
        • Overview
        • Quick start
        • Version Release Records
      • Android & iOS SDK Download
      • SDK Privacy Policy
      • SDK Developer Personal Information Protection Compliance Guide
    • Importing SLS Collection Configuration
  • FAQs
    • Common Questions Overview
    • Fault-related questions
    • Configuration-related questions
  • Log Service Level Agreement SLA
All documents
menu
No results found, please re-enter

BLS

  • Function Release Records
  • Product Description
    • Usage restrictions
    • Product Introduction
  • Product pricing
  • Quick Start
    • Introduction
    • Install agent
    • Create LogStore
    • Create Transmission Task
    • Log Analysis and Alerting
    • Create Delivery Task
  • Operation guide
    • Baidu Intelligent Cloud Environment Preparation
    • Overview
    • Identity and access management
    • Logset Management
    • Agent
      • Install Agent on Host
      • Install Agent in K8s Environment
      • Agent Management
      • Agent Release Version
      • Set Agent Startup Parameters
    • Log Collection
      • Transmission Task Collection
        • Create Transmission Task
        • Manage Transmission Task
      • Uploading Logs Using Kafka Protocol
    • Query analysis
      • Log query
      • SQL Syntax
      • Search Syntax
    • Dashboard
      • Overview
      • Management Dashboard
      • Management Dashboard Charts
    • Alarm management
      • Alert Overview
      • Alarm strategy
        • Management alarm strategy
        • Trigger conditions
      • Alarm history
      • Alert execution statistics
      • Alarm notification
        • Alarm Notification Template
        • Alarm callback
    • Data processing
      • Log Delivery
        • Log Delivery Overview
        • Create Delivery Task
        • Manage Delivery Task
      • Scheduled SQL Analysis
        • Manage Scheduled SQL Analysis Task
        • Create Scheduled SQL Analysis Task
      • Real-Time Consumption
      • Data processing
        • Data processing
          • Overview of data processing functions
          • Process control function
          • Mapping enrichment functions
          • Event operation functions
          • Field operation functions
          • Field value extraction functions
    • Log Applications
      • Intelligent Diagnostics
  • Best Practices
    • Use Year-Over-Year and Month-Over-Month as Alert Trigger Conditions
    • BLS Integration with Kibana
    • Use BLS via Grafana
  • Development Guide
    • API Reference
      • API function release records
      • API Overview
      • Interface Overview
      • General Description
      • Service domain
      • Common error codes
      • Terminology
      • Project Related APIs
        • Create Project
        • Update Project
        • Describe Project
        • Delete Project
        • List Project
      • LogStore Related APIs
        • Create LogStore
        • Update LogStore
        • Delete LogStore
        • Describe LogStore
        • Batch Get LogStore
        • List LogStore
      • LogStream Related APIs
        • List LogStream
      • LogRecord Related APIs
        • Push log PushLogRecord
        • Obtain logrecord PullLogRecord
        • Search analysis log QueryLogRecord
        • Histogram API QueryLogHistogram
      • Fast Query FastQuery Related Interfaces
        • Create Fast Query CreateFastQuery
        • Update Fast Query UpdateFastQuery
        • Delete Fast Query DeleteFastQuery
        • Get Fast Query Details DescribeFastQuery
        • Get Fast Query List ListFastQuery
      • Index Related APIs
        • Create Index
        • Update Index
        • Delete Index
        • Describe Index
      • Log Shipper LogShipper Related Interfaces
        • Create Log Shipper
        • Update Log Shipper
        • Set Single Log Shipper Status
        • Delete Single Log Shipper
        • Bulk Delete Log Shipper
        • List Log Shipper Records
        • List Log Shipper
        • Bulk Set Log Shipper Status
        • Get Log Shipper
      • Alarm-Related Interfaces
        • CreateAlarmPolicy
        • UpdateAlarmPolicy
        • DeleteAlarmPolicy
        • ValidateAlarmCondition
        • ValidateAlarmPolicySQL
        • EnableAlarmPolicy
        • DescribeAlarmRecord
        • DisableAlarmPolicy
        • DescribeAlarmPolicy
        • ListAlarmPolicy
        • ListAlarmRecord
        • ListAlarmExecutionStats
        • ListAlarmExecutions
      • LogStore Template-Related Interfaces
        • CreateLogStoreTemplate
        • UpdateLogStoreTemplate
        • DeleteLogStoreTemplates
        • DescribeLogStoreTemplates
        • DescribeLogStoreTemplate
      • Download Log Download Related Interfaces
        • Create Download Task CreateDownloadTask
        • Get Download Task List ListDownloadTask
        • Delete Download Task DeleteDownloadTask
        • Get Download Task Address GetDownloadTaskLink
        • Get Download Task Details DescribeDownloadTask
      • LogAlarm Related Interfaces
        • SetLogAlarmStatus
        • deleteLogAlarm
        • createLogAlarm
        • listLogAlarm
        • updateLogAlarm
        • BulkDeleteLogAlarm
        • PreviewAlarmLogRecord
        • getLogAlarm
        • BulkSetLogAlarmStatus
      • Transmission Task Related Interfaces
        • Create Task CreateTask
        • UpdateTask
      • Interfaces Compatible with Elasticsearch
        • ResolveIndex
        • FieldCaps
        • TermsEnum
        • AsyncSearch
    • SDK Reference
      • Go SDK
        • Overview
        • Initialization
        • Version Release Records
        • Project Operations
        • LogStore Operations
        • Install the SDK Package
        • LogStream Operations
        • LogRecord Operations
        • FastQuery Operations
        • LogShipper Operations
        • Index Operations
        • Download Task Operations
      • Java SDK
        • Overview
        • Install the SDK Package
        • LogRecord Operations
      • iOS SDK
        • Overview
        • Quick start
        • Version Release Records
      • Android SDK
        • Overview
        • Quick start
        • Version Release Records
      • Android & iOS SDK Download
      • SDK Privacy Policy
      • SDK Developer Personal Information Protection Compliance Guide
    • Importing SLS Collection Configuration
  • FAQs
    • Common Questions Overview
    • Fault-related questions
    • Configuration-related questions
  • Log Service Level Agreement SLA
  • Document center
  • arrow
  • BLS
  • arrow
  • Operation guide
  • arrow
  • Query analysis
  • arrow
  • SQL Syntax
Table of contents on this page
  • Syntax support
  • Operator
  • Built-in functions
  • Type conversion functions
  • Aggregation functions
  • String functions
  • Mathematical functions
  • Estimation functions
  • Date and time functions
  • Basic functions
  • Time grouping functions
  • Conditional functions
  • Year-on-year and month-on-month functions
  • Appendix
  • Date format
  • Keywords

SQL Syntax

Updated at:2025-11-03

Directory

1.[Syntax support](#Syntax support)
2.Operators
3.[Built-in functions](#Built-in functions)
3.1[Type conversion functions](#Type conversion functions)
3.2[Aggregation functions](#Aggregation functions)
3.3[String functions](#String functions)
3.4[ Mathematical functions](#Mathematical functions)
3.5[ Estimation functions](#Estimation functions)
3.6[Date and time functions](#Date and time functions)
3.7[ Conditional functions](#Conditional functions)
3.8[Year-on-year and month-on-month functions](#Year-on-year and month-on-month functions)
4.Appendix
4.1 [Date format](#Date format)
4.2 Keywords

Syntax support

BLS supports basic SELECT queries. The specific query syntax is

SQL
1SELECT
2    select_expr [, select_expr] ...
3    [FROM subquery [AS] table_id]
4    [WHERE where_condition]
5    [GROUP BY {col_name | expr}, ... ]
6    [HAVING where_condition]
7    [ORDER BY {col_name | expr} [ASC | DESC], ...]
8    [LIMIT [offset,] row_count]

In this context, where_condition is a conditional expression that evaluates to a Boolean value. When subqueries are unnecessary, the FROM clause can be omitted.

The field name is case-sensitive, and the use of keywords should be avoided whenever possible. If keywords are used, they must be enclosed in back quotes, for example: `action`.

Operator

Unary prefix operation

Operator Example Description
+/- -A Symbol that changes the parameter

Binary operation

Operator Example Description
+ A + B Addition operation
- A - B Subtraction operation
* A * B Multiplication operation
/ A / B Division operation
% A % B Modulus operation, yielding the remainder of A divided by B
-> column->path Abbreviation of json_extract(), extracts content at the specified path from a specified column's JSON string, e.g., json->"$.b"

Relational operation

Operator Example Description
= A = B If A equals B, return TRUE; otherwise, return FALSE. If A and B are not of comparable types, return NULL.
!= A != B If A is not equal to B, return TRUE; otherwise, return FALSE. If A and B are not of comparable types, return NULL.
> A > B If A is greater than B, return TRUE; otherwise, return FALSE. If A and B are not of comparable types, return NULL.
>= A >= B If A is greater than or equal to B, return TRUE; otherwise, return FALSE. If A and B are not of comparable types, return NULL.
< A < B If A is less than B, return TRUE; otherwise, return FALSE. If A and B are not of comparable types, return NULL.
<= A <= B If A is less than or equal to B, return TRUE; otherwise, return FALSE. If A and B are not comparable, return NULL.
[NOT] LIKE A LIKE pattern If A does [not] match the pattern, return TRUE; otherwise, return FALSE
IS [NOT] NULL A IS NULL If A is [not] NULL, return TRUE; otherwise, return FALSE
IS [NOT] TRUE/FALSE A IS TRUE If A is [not] TRUE/FALSE, return TRUE; otherwise, return FALSE
BETWEEN EXPR BETWEEB A AND B If the value of expression EXPR is greater than or equal to A and less than or equal to B, return TRUE; otherwise, return FALSE, equivalent to EXPRESSION >= A AND EXPRESSION <= B

Logical operation

Operator Example Description
[NOT] IN A IN (val1, val2, ...) If A is [not] equal to any of the parameter values, return TRUE; otherwise, return FALSE
AND A AND B If both A and B are TRUE, return TRUE; otherwise, return FALSE. If either A or B is not a Boolean, return NULL.
OR A OR B If either A or B is TRUE, return TRUE; otherwise, return FALSE. If either A or B is not a Boolean, return NULL.
NOT NOT A If A is FALSE, return TRUE; otherwise, return FALSE. If A is not a Boolean, return NULL.

Built-in functions

Type conversion functions

Function signature Response value Description Example
cast(expr as <type>) <type> Convert the value of expr to the <type> type, and<type> supports BIGINT, DECIMAL, VARCHAR, TIMESTAMP >select cast("123" as BIGINT)
123

Aggregation functions

Function signature Response value Description Example
count(*),count(expr),count(DISTINCT expr) Int Calculate the number of result rows meeting the condition >select count(*)
10
count_if(expr) Int Calculate the number of result rows that meet the expr expression as true >select count_if(num > 0)
10
sum(col) T Calculate the sum of elements >select sum(num)
983
avg(col) Double Calculate the average value of elements >select avg(num)
73.14
max(col) T Calculate the maximum value of elements >select max(num)
99
min(col) T Calculate the minimum value of elements >select min(num)
62
first(col) T Calculate the first value of elements >select first(num)
87
last(col) T Calculate the last value of elements >select last(num)
95
arbitrary(col) T Return the arbitrary value >select any(num)
21
bitwise_and_agg(col) Int Return the bitwise and operation (AND) result of all values >select bitwise_and_agg(num)
1024
bitwise_or_agg(col) Int Return the bitwise or operation (OR) result of all values >select bitwise_and_agg(num)
2047
bool_and(col) Bool Check if all expressions in the group meet the condition. If so, return true. >select bool_and(result)
true
bool_or(col) Bool Check if all expressions in the group meet the condition. If so, return true. >select bool_and(result)
false
checksum(col) String Calculate the checksum of elements within a group and output it in base64 encoding >select checksum(x)
dGhpcyBpcyBhIHRlc3Q=
max_by(x, y) T Query the x value corresponding to the maximum y >select max_by(x,y)
32
min_by(x,y) T Query the x value corresponding to the minimum y >select min_by(x,y)
42

String functions

Function signature Response value Description Example
reverse(String str) String Return a string with reversed order >select reverse("hello")
olleh
lower(String str) String Return a string in lowercase format >select lower("fOoBaR")
foobar
upper(String str) String Return a string in uppercase format >select upper("fOoBaR")
FOOBAR
capitalize(String str) String Return a string with the first letter of each word capitalized >select upper("fOoBaR")
FOoBaR
substring(String str, Int start [, Int len]) String Extract a substring from the original string, starting from the given position and with the specified length. Start positions begin at 1 and support negative values, which count backward from the end of the string. If the length (len) parameter is omitted, the substring will extend to the end of the string. >select substr("fOoBaR", 2, 4)
OoBa
>select substr("fOoBaR", -3, 2)
Ba
substr(String str, Int start [, Int len]) String Alias for substring()
replace(String str, String OLD, String NEW) String Return a string str in which OLD substring is replaced by NEW substring >select replace("abcdef", "abc", "cba")
cbadef
length(String str) Int Return the length of the string >replace("abcdef", "abc", "cba")
cbadef
chr(Int x) String Return the letter corresponding to the ASCII code >chr(99)
c
codepoint(char x) Int Return the ASCII code corresponding to the character >codepoint('c')
99
levenshtein_distance(String x, String y) Int Return the minimum edit distance between x and y >levenshtein_distance('cg', 'cdefg')
3
lpad(String x, Int length, String lpad_string) String Return a result string of specified length padded with specified characters at the beginning >lpad('qqq',10,'p')
pppppppqqq
rpad(String x, Int length, String lpad_string) String Return a result string of specified length padded with specified characters at the end >rpad('qqq',10,'p')
qqqppppppp
ltrim(String x) String Return the result string from which the space at the beginning of the string is deleted >ltrim(' dhsk')
dhsk
rtrim(String x) String Return the result string from which the space at the end of the string is deleted >rtrim('dhsk ')
dhsk
trim(String x) String Return the result string from which the space at the end of the string is deleted >rtrim(' dhsk ')
dhsk
normalize(String x) String Return a string formatted in NFC >normalize('schön')
schön
strpos(String x, String sub_string) Int Return the position of the target substring within the string >strpos('china news','news')
7
to_utf8(String x) String Return a string in UTF-8 encoding format >to_utf8('info')
aW5mbw==
locate(String substr, String str) Int Return the first occurrence position of substr in string str. If not found, return 0 >select locate(".", "3.14")
2
position(String substr, String str) Int Alias for locate()
concat(String A, String B...) String Return a string concatenating all parameters in input order >select concat("foo", "bar")
foobar
json_extract(String json, String path) T Extract content from a JSON string based on the specified path >select json_extract("{"a": 1, "b": 2}", "$.a")
1
regexp_like(String str, String regexp) Boolean Whether a string matches the given regular expression >select regexp_like("abc", "[a-z]+")
true
regexp_extract(String str, String regexp) String Extract the first substring matching the regular expression from the string >select regexp_extract("abc", "[a-z]+")
abc
regexp_extract_all(String str, String regexp) Array<String> Extract all substrings matching the regular expression from the string >select regexp_extract_all("abc22abc", "[a-z]+")
[abc,abc]

Mathematical functions

Function signature Response value Description Example
abs(Double a), abs(Int a) Double/Int Calculate the absolute value >select abs(-2)
2
sqrt(Double a) Double Calculate the square root >select sqrt(100)
10
greatest(T v1, T v2, ...) T Calculate the maximum value among the parameters. If any parameter is Null, return Null >select greatest(1, 3.14, -5)
3.14
least(T v1, T v2, ...) T Calculate the minimum value among the parameters. If any parameter is Null, return Null >select least(1, 3.14, -5)
-5
rand() Double Return a random number between 0 and 1, with each row of the dataset receiving a different random number >select rand()
0.3
ceil(Double a) Int Return an integer greater than or equal to a and closest to a >select ceil(3.14)
4
floor(Double a) Int Return an integer less than or equal to a and closest to a >select floor(3.14)
3
log(Double a) Double Calculate base-2 logarithm >select log(32)
5
ln(Double a) Double Calculate natural logarithm >select ln(100)
4.61512051684126
pow(Double a, Double p) Double Calculate the p-th power of a >select pow(2, 5)
32
round(Key, n) Double Retain n decimal places for Key >select round(200.3333, 2)
200.33

Estimation functions

Function signature Response value Description Example
percentile(Double x, Double percentage01, Double percentage02...) Array<Double> Sort x in ascending order and return x at positions percentage01, percentage02.. >select percentile(latency, 0.1, 0.2)
[0.22, 0.35]

Date and time functions

Basic functions

Function signature Response value Description Example
now() DateTime Return the current local time >select now()
2020-01-16T08:30:50Z
current_timestamp() DateTime Alias for now()
unix_timestamp([String/DateTime date[, String format]]) Int Convert a datetime string or DateTime value into a Unix timestamp based on the specified format. By default, the ISO8601 format is supported and parsed according to the timezone in the string. If a specific format is provided, the local timezone will be used. >select unix_timestamp("2019-11-11T11:11:11Z")
1573470671
>select unix_timestamp("2019-11-11 11:11:11", "%Y-%m-%d %H:%i:%s")
1573441871
from_unixtime(Int unixtime[, String format]) String Convert unixtime (seconds from 1970-01-01 00:00:00 UTC to now) into a string representing local time, and the default format is 1970-01-01 00:00:00, with the option to specify string format via format. The supported date_format is detailed in Appendix >select from_unixtime(0)
1970-01-01 08:00:00
>select from_unixtime(unix_timestamp("2019-11-11T11:11:11+08:00"))
2019-11-11 11:11:11
str_to_date(String str, String format) DateTime Parse the datetime string str according to the format >select str_to_date("2019-11-11 11:11:11", "%Y-%m-%d %H:%i:%s")
2019-11-11T03:11:11Z
year(String/DateTime date) Int Return the year of the date >select year("2019-11-07T09:09:16+08:00")
2019
quarter(String/DateTime date) Int Return the quarter of the date >select quarter("2019-11-07T09:09:16+08:00")
4
month(String/DateTime date) Int Return the month of the date >select month("2019-11-07T09:09:16+08:00")
11
day(String/DateTime date) Int Alias for dayofmonth()
hour(String/DateTime date) Int Return the hour of the date >select year("2019-11-07T09:09:16+08:00")
9
minute(String/DateTime date) Int Return the minute of the date >select year("2019-11-07T09:09:16+08:00")
9
second(String/DateTime date) Int Return the second of the date >select year("2019-11-07T09:09:16+08:00")
16
weekday(String/DateTime date) Int Return the position of the date in a week (0 = Monday, 1 = Tuesday, ... 6 = Sunday) >select weekday("2019-11-07T09:09:16+08:00")
3
dayofyear(String/DateTime date) Int Return the position of date in the year, with possible values from 1 to 366 >select dayofyear("2019-11-07T09:09:16+08:00")
311
dayofmonth(String/DateTime date) Int Return the position of date within a month >select dayofmonth("2019-11-07T09:09:16+08:00")
7
dayofweek(String/DateTime date) Int Return the position of the date in a week (1 = Sunday, 2 = Monday, ... 7 = Saturday) >select dayofweek("2019-11-07T09:09:16+08:00")
5
current_timezone() String Return the current timezone >select current_timezone()
Asia/Shanghai
current_date String Return the current date >select current_timezone()
2019-11-07
extract(String unit, String/DateTime date) String Extract a specific value from the current date based on time unit
, with unit options: "second/minute/hour/day/month/year"
>select extract("day", "2019-11-07T09:09:16+08:00")
7
date_trunc(String unit, String/DateTime date) DateTime Truncate the date by the specified time unit, such as
"second/minute/hour/day/month/year"
>select date_trunc("day", "2019-11-07T09:09:16+08:00")
2019-11-07T00:00:00
date_diff(String unit, String/DateTime start, String/DateTime end) Int Calculate the difference between two time periods based on the time unit. Hour/minute/second/day are precise values; year and month are derived differences
, with unit options: "second/minute/hour/day/month/year"
>select date_diff("day","2019-11-05T09:09:16+08:00","2019-11-07T09:09:16+08:00")
2
date_add(String unit, Int N, DateTime time) TimeStamp The time
unit obtained by N time units after obtaining the time can be selected as "second/minute/hour/day/month/year"
>select date_add('day', 2 ,cast('2025-08-15T19:28:42Z+08:00' as timestamp))
2025-08-17 19:28:42.000
localtime() String Get the current time (HH:MM:SS) >select localtime()
10:09:33
date(String/DateTime time) String Get the corresponding date (yy-mm-dd) >select date("2019-11-05T09:09:16+08:00")
2019-11-05
from_iso8601_timestamp(String time) String Convert an ISO8601-formatted date and time expression into a timestamp-type expression that includes a timezone >select from_iso8601_timestamp("2019-11-05T09:09:16+08:00")
2019-11-05 09:09:16 Asia/Shanghai
from_iso8601_date(String time) String Convert an ISO8601-formatted date expression into a string containing only YYYY-MM-DD >select from_iso8601_date("2019-11-05T09:09:16+08:00")
2019-11-05

Time grouping functions

Function description: Perform grouped aggregation statistics on log data at fixed time intervals, for example, counting the access counts every 5 minutes and other scenarios

Function format: histogram(time_column, interval)

Parameter description:

Parameters Description
time_column Time column (KEY), for example @timestamp, whose value must be a unix timestamp of long type in milliseconds or a datetime expression of timestamp type. If the time column does not meet the above requirements, you can use the cast function to convert an ISO8601-formatted time string to the timestamp type, e.g., cast('2020-08-19T03:18:29.000Z' as timestamp)
Note: When using timestamp for the time column, its corresponding datetime expression must be in UTC+0 timezone. If the datetime expression itself is in another timezone, it needs to be adjusted to UTC+0 through calculation. For example, when the original time is Beijing Time (UTC+8), adjust using cast('2020-08-19T03:18:29.000Z' as timestamp) - interval 8 hour.
interval Specify fixed time intervals, with supported units including second, minute, hour, day, week, and month. For example, a 5-minute interval would be written as "interval 5 minute."

Example:

Count PV values of access counts every 5 minutes: select histogram(cast(@timestamp as timestamp),interval 5 minute) as t,count(*) group by t order by t

Conditional functions

Function signature Response value Description Example
if(Boolean testCondition, T valueTrue, T valueFalseOrNull) T If the test condition is true, return ValueTrue; otherwise, return ValueFalseOrNull >select if(2>1, 1, 0)
1
nullif(T a, T b) T If a = b, return Null; otherwise, return a >select nullif(1, 1)
null
coalesce(T v1, T v2, ...) T Return the first non-Null value; if all parameters are Null, return Null >select coalesce(null, 0, false, 1)
0
CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END T If a = b, return c; if a = d, return e; otherwise return f >select case substring("abc", 1, 1) when "a" then "a" when "b" then "b" else "c" end
a
CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END T If a = true, return b; if c = true, return d; otherwise return e >select case when substring("abc", 1, 1) = "a" then "a" when 2 > 1 then "b" else "c" end
a

Year-on-year and month-on-month functions

Function signature Response value Description Example
compare(x, t1, t2...) array<float> Compare the calculation results in the current time window with those in the time window before t1, t2.....seconds. The format of
return value is [ current calculation result, calculation result before t second, and ratio of current calculation result to calculation result before T second ].
>select compare(x, 3600) from (
select avg(latency) as x
)
[0.3,0.6,0.5]
ts_compare(x,t1, t2...) array<float> When applying timestamps, compare the calculation results in the current time window with those in the time window before t1, t2.....seconds. The format of
return value is [ current calculation result, calculation result before t second, and ratio of current calculation result to calculation result before T second ].
The grouped timestamp (e.g., 2019-11-01 10:00) of the calculation result for the corresponding time window t1 (e.g., 3600) will automatically fill the time to (2019-11-01 11:00) and calculate the ratio with the current timestamp
>select time, ts_compare(x, 3600) from (
select time, avg(latency) as x group by time
)
2019-11-01 12:00,[0.4,0.2,2]
2019-11-01 11:00, [0.3,0.6,0.5]

Appendix

Date format

date_format supported by time functions

Placeholder Description
%a Abbreviated weekday name (Sun..Sat)
%b Abbreviated month name (Jan..Dec)
%c Month, numeric (0..12)
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00..31)
%e Day of the month, numeric (0..31)
%f Microseconds (000000..999999)
%H Hour (00..23)
%h Hour (01..12)
%I Hour (01..12)
%i Minutes, numeric (00..59)
%j Day of year (001..366)
%k Hour (0..23)
%l Hour (1..12)
%M Month name (January..December)
%m Month, numeric (00..12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed by AM or PM)
%S Seconds (00..59)
%s Seconds (00..59)
%T Time, 24-hour (hh:mm:ss)
%W Weekday name (Sunday..Saturday)
%w Day of the week (0=Sunday..6=Saturday)
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%% A literal % character

Keywords

#

_binary
_utf8mb4

A - F

accessible action add against all alter analyze and as asc asensitive auto_increment before begin between bigint binary bit blob bool boolean both by call cascade case cast change char character charset check collate collation column columns comment commit committed condition constraint continue convert create cross current_date current_time current_timestamp current_user cursor database databases date datetime day_hour day_microsecond day_minute day_second dec decimal declare default delayed delete desc describe descriptor deterministic distinct distinctrow div double drop duplicate each else elseif enclosed end engines enum escape escaped exists exit expansion explain false fetch fields float float4 float8 flush for force foreign from full fulltext

G - N

generated geometry geometrycollection get global grant group group_concat having high_priority hour_microsecond hour_minute hour_second if ignore in index infile inner inout insensitive insert int int1 int2 int3 int4 int8 integer interval into io_after_gtids is isolation iterate join json json_extract key key_block_size keys kill language last_insert_id leading leave left less level like limit linear lines linestring load localtime localtimestamp lock long longblob longtext loop low_priority master_bind match maxvalue mediumblob mediumint mediumtext middleint minute_microsecond minute_second mod mode modifies multilinestring multipoint multipolygon names natural nchar next no no_write_to_binlog not null numeric

O - S

off offset on only optimize optimizer_costs option optionally or order out outer outfile partition plugins point polygon precision primary procedure processlist query read read_write reads real references regexp release rename reorganize repair repeat repeatable replace require resignal restrict return revoke right rlike rollback schema schemas second_microsecond select sensitive separator serializable session set share show signal signed smallint spatial specific sql sql_big_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting status stored straight_join stream string substr substring

T - Z

table tables terminated text than then time timestamp timestampadd timestampdiff tinyblob tinyint tinytext to trailing transaction trigger true truncate uncommitted undo union unique unlock unsigned update usage use using utc_date utc_time utc_timestamp values varbinary varchar varcharacter variables varying view vindex vindexes virtual vitess_keyspaces vitess_shards vitess_tablets vitess_target vschema vschema_tables warnings when where while with write xor year year_month zerofill

Previous
Log query
Next
Search Syntax