以下内容来自 TDengine 官方文档 及
GitHub 内容 。以下所有示例基于 TDengine 3.1.0.3
TDengine函数大全
1.数学函数
2.字符串函数
3.转换函数
4.时间和日期函数
5.聚合函数
6.选择函数
7.时序数据库特有函数
8.系统函数
数学函数
- TDengine函数大全
- ABS
- ACOS
- ASIN
- ATAN
- CEIL
- COS
- FLOOR
- LOG
- POW
- ROUND
- SIN
- SQRT
- TAN
ABS
ABS(expr)
功能说明:获得指定字段的绝对值。
返回结果类型:与指定字段的原始数据类型一致。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
写入示例数据
CREATE TABLE `t1` (`ts` TIMESTAMP, `v1` INT, `v2` DOUBLE, `v3` FLOAT);
insert into t1 values(now,1,1,1);
insert into t1 values(now,-1,-1,-1);
insert into t1 values(now,0.5,0.5,0.5);
taos> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |
Query OK, 3 row(s) in set (0.002018s)
> select ts,abs(v1),abs(v2),abs(v3) from t1 limit 10;ts | abs(v1) | abs(v2) | abs(v3) |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |> select ts,abs(v1) from (select * from t1 limit 10);ts | abs(v1) |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | 1 |2023-08-30 14:34:01.888 | 1 |> select ts, case when v1<0 then abs(v1) else v1 end from t1 limit 10;ts | case when v1<0 then abs(v1) else v1 end |
====================================================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | 1 |2023-08-30 14:34:01.888 | 1 |> select ts,abs(-1),v1 from t1 limit 2;ts | abs(-1) | v1 |
================================================================2023-08-30 14:33:06.691 | 1 | 1 |2023-08-30 14:33:12.034 | 1 | -1 |
ACOS
ACOS(expr)
功能说明:获得指定字段的反余弦结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:
- 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
- 反余弦的取值范围为 [-1,+1],超过取值范围返回
NULL
。
示例:
> select ts,v2 from t1;ts | v2 |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:34:01.888 | 0.500000000000000 |> select ts,acos(v2) from t1;ts | acos(v2) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | 3.141592653589793 |2023-08-30 14:34:01.888 | 1.047197551196598 |> select ts,acos(v2) from (select ts,v2 from t1) limit 3;ts | acos(v2) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | 3.141592653589793 |2023-08-30 14:34:01.888 | 1.047197551196598 |> insert into t1 values(now,1,2,3);
> select ts,acos(v2) from t1;ts | acos(v2) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | 3.141592653589793 |2023-08-30 14:34:01.888 | 1.047197551196598 |2023-08-30 14:48:32.507 | NULL |
ASIN
ASIN(expr)
功能说明:获得指定字段的反正弦结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:
- 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
- 反正弦的取值范围为 [-1,+1],超过取值范围返回
NULL
。
示例:
> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |> select ts,asin(v2) from t1;ts | asin(v2) |
======================================================2023-08-30 14:33:06.691 | 1.570796326794897 |2023-08-30 14:33:12.034 | -1.570796326794897 |2023-08-30 14:34:01.888 | 0.523598775598299 |2023-08-30 14:48:32.507 | NULL |> select ts,asin(v2) from (select * from t1);ts | asin(v2) |
======================================================2023-08-30 14:33:06.691 | 1.570796326794897 |2023-08-30 14:33:12.034 | -1.570796326794897 |2023-08-30 14:34:01.888 | 0.523598775598299 |2023-08-30 14:48:32.507 | NULL
ATAN
ATAN(expr)
功能说明:获得指定字段的反正切结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |> select ts,atan(v2) from t1 ;ts | atan(v2) |
======================================================2023-08-30 14:33:06.691 | 0.785398163397448 |2023-08-30 14:33:12.034 | -0.785398163397448 |2023-08-30 14:34:01.888 | 0.463647609000806 |2023-08-30 14:48:32.507 | 1.107148717794090 |> select ts,atan(v2) from (select * from t1);ts | atan(v2) |
======================================================2023-08-30 14:33:06.691 | 0.785398163397448 |2023-08-30 14:33:12.034 | -0.785398163397448 |2023-08-30 14:34:01.888 | 0.463647609000806 |2023-08-30 14:48:32.507 | 1.107148717794090 |
CEIL
CEIL(expr)
功能说明:获得指定字段的向上取整数的结果。
返回结果类型:与指定字段的原始数据类型一致。
适用数据类型:数值类型。
适用于: 表和超级表。
嵌套子查询支持:适用于内层查询和外层查询。
使用说明: 只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |2023-08-30 14:59:58.363 | 2 | 0.200000000000000 | 0.2000000 |> select ts,ceil(v2) from t1 ;ts | ceil(v2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:34:01.888 | 1.000000000000000 |2023-08-30 14:48:32.507 | 2.000000000000000 |2023-08-30 14:59:58.363 | 1.000000000000000 |> select ts,ceil(v2) from (select * from t1);ts | ceil(v2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:34:01.888 | 1.000000000000000 |2023-08-30 14:48:32.507 | 2.000000000000000 |2023-08-30 14:59:58.363 | 1.000000000000000 |
COS
COS(expr)
功能说明:获得指定字段的余弦结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |2023-08-30 14:59:58.363 | 2 | 0.200000000000000 | 0.2000000 |> select ts,cos(v3) from t1;ts | cos(v3) |
======================================================2023-08-30 14:33:06.691 | 0.540302305868140 |2023-08-30 14:33:12.034 | 0.540302305868140 |2023-08-30 14:34:01.888 | 0.877582561890373 |2023-08-30 14:48:32.507 | -0.989992496600445 |2023-08-30 14:59:58.363 | 0.980066577249161 |> select ts,cos(v3) from (select * from t1);ts | cos(v3) |
======================================================2023-08-30 14:33:06.691 | 0.540302305868140 |2023-08-30 14:33:12.034 | 0.540302305868140 |2023-08-30 14:34:01.888 | 0.877582561890373 |2023-08-30 14:48:32.507 | -0.989992496600445 |2023-08-30 14:59:58.363 | 0.980066577249161 |> SELECT COS(60*3.14159265359/180) FROM t1 limit 1;cos(60*3.14159265359/180) |
============================0.499999999999940 |
FLOOR
FLOOR(expr)
功能说明:获得指定字段的向下取整数的结果。
其他使用说明参见 CEIL 函数描述。
示例:
select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:34:01.888 | 1 | 0.500000000000000 | 0.5000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |2023-08-30 14:59:58.363 | 2 | 0.200000000000000 | 0.2000000 |> select ts,floor(v2) from t1;ts | floor(v2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:34:01.888 | 0.000000000000000 |2023-08-30 14:48:32.507 | 2.000000000000000 |2023-08-30 14:59:58.363 | 0.000000000000000 |> select ts,floor(v2) from (select * from t1);ts | floor(v2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:34:01.888 | 0.000000000000000 |2023-08-30 14:48:32.507 | 2.000000000000000 |2023-08-30 14:59:58.363 | 0.000000000000000 |
LOG
LOG(expr1[, expr2])
功能说明:获得 expr1 对于底数 expr2 的对数。如果 expr2 参数省略,则返回指定字段的自然对数值。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select ts,v1 from t1;ts | v1 |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | -1 |2023-08-30 14:48:32.507 | 1 |2023-08-30 14:59:58.363 | 2 |2023-08-30 16:25:28.882 | 4 |> select ts,log(v1) from t1;ts | log(v1) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | NULL |2023-08-30 14:48:32.507 | 0.000000000000000 |2023-08-30 14:59:58.363 | 0.693147180559945 |2023-08-30 16:25:28.882 | 1.386294361119891 |> select ts,log(v1,2) from t1;ts | log(v1,2) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | NULL |2023-08-30 14:48:32.507 | 0.000000000000000 |2023-08-30 14:59:58.363 | 1.000000000000000 |2023-08-30 16:25:28.882 | 2.000000000000000 |> select ts,log(v1,2) from (select * from t1);ts | log(v1,2) |
======================================================2023-08-30 14:33:06.691 | 0.000000000000000 |2023-08-30 14:33:12.034 | NULL |2023-08-30 14:48:32.507 | 0.000000000000000 |2023-08-30 14:59:58.363 | 1.000000000000000 |2023-08-30 16:25:28.882 | 2.000000000000000 |> select log(1024,2) from t1 limit 1;log(1024,2) |
============================10.000000000000000 |
POW
POW(expr1, expr2)
功能说明:获得 expr1 的指数为 expr2 的幂。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select ts,v1 from t1;ts | v1 |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | -1 |2023-08-30 14:48:32.507 | 1 |2023-08-30 14:59:58.363 | 2 |2023-08-30 16:25:28.882 | 4 |> select ts,pow(v1,2) from t1;ts | pow(v1,2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | 1.000000000000000 |2023-08-30 14:48:32.507 | 1.000000000000000 |2023-08-30 14:59:58.363 | 4.000000000000000 |2023-08-30 16:25:28.882 | 16.000000000000000 |> select ts,pow(2,v1) from t1;ts | pow(2,v1) |
======================================================2023-08-30 14:33:06.691 | 2.000000000000000 |2023-08-30 14:33:12.034 | 0.500000000000000 |2023-08-30 14:48:32.507 | 2.000000000000000 |2023-08-30 14:59:58.363 | 4.000000000000000 |2023-08-30 16:25:28.882 | 16.000000000000000 |> select ts,pow(v1,v1) from t1;ts | pow(v1,v1) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:48:32.507 | 1.000000000000000 |2023-08-30 14:59:58.363 | 4.000000000000000 |2023-08-30 16:25:28.882 | 256.000000000000000 |> select ts,pow(v1,v2) from (select * from t1);ts | pow(v1,v2) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | -1.000000000000000 |2023-08-30 14:48:32.507 | 1.000000000000000 |2023-08-30 14:59:58.363 | 1.148698354997035 |2023-08-30 16:25:28.882 | 256.000000000000000 |> select pow(2,10) from t1 limit 1;pow(2,10) |
============================1024.000000000000000 |
ROUND
ROUND(expr)
功能说明:获得指定字段的四舍五入的结果。
其他使用说明参见 CEIL 函数描述。
示例:
> select * from t1;ts | v1 | v2 | v3 |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |2023-08-30 14:59:58.363 | 2 | 0.200000000000000 | 0.2000000 |2023-08-30 16:25:28.882 | 4 | 4.000000000000000 | 4.0000000 |2023-08-30 16:39:29.246 | 1 | 0.600000000000000 | 0.4000000 |> select ts,round(v1),round(v2),round(v3) from t1;ts | round(v1) | round(v2) | round(v3) |
===========================================================================================2023-08-30 14:33:06.691 | 1 | 1.000000000000000 | 1.0000000 |2023-08-30 14:33:12.034 | -1 | -1.000000000000000 | -1.0000000 |2023-08-30 14:48:32.507 | 1 | 2.000000000000000 | 3.0000000 |2023-08-30 14:59:58.363 | 2 | 0.000000000000000 | 0.0000000 |2023-08-30 16:25:28.882 | 4 | 4.000000000000000 | 4.0000000 |2023-08-30 16:39:29.246 | 1 | 1.000000000000000 | 0.0000000 |
Query OK, 6 row(s) in set (0.003281s)
SIN
SIN(expr)
功能说明:获得指定字段的正弦结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select ts,v1 from t1;ts | v1 |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | -1 |2023-08-30 14:48:32.507 | 1 |2023-08-30 14:59:58.363 | 2 |2023-08-30 16:25:28.882 | 4 |2023-08-30 16:39:29.246 | 1 |> select ts,sin(v1) from t1;ts | sin(v1) |
======================================================2023-08-30 14:33:06.691 | 0.841470984807897 |2023-08-30 14:33:12.034 | -0.841470984807897 |2023-08-30 14:48:32.507 | 0.841470984807897 |2023-08-30 14:59:58.363 | 0.909297426825682 |2023-08-30 16:25:28.882 | -0.756802495307928 |2023-08-30 16:39:29.246 | 0.841470984807897 |> select ts,sin(v1) from (select * from t1);ts | sin(v1) |
======================================================2023-08-30 14:33:06.691 | 0.841470984807897 |2023-08-30 14:33:12.034 | -0.841470984807897 |2023-08-30 14:48:32.507 | 0.841470984807897 |2023-08-30 14:59:58.363 | 0.909297426825682 |2023-08-30 16:25:28.882 | -0.756802495307928 |2023-08-30 16:39:29.246 | 0.841470984807897 |> select sin(90*3.1415926/180) from t1 limit 1;sin(90*3.1415926/180) |
============================1.000000000000000 |> select sin(30*3.1415926/180) from t1 limit 1;sin(30*3.1415926/180) |
============================0.499999992264980 |
SQRT
SQRT(expr)
功能说明:获得指定字段的平方根。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select ts,v1 from t1;ts | v1 |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | -1 |2023-08-30 14:48:32.507 | 1 |2023-08-30 14:59:58.363 | 2 |2023-08-30 16:25:28.882 | 4 |2023-08-30 16:39:29.246 | 1 |> select ts,sqrt(v1) from t1;ts | sqrt(v1) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | NULL |2023-08-30 14:48:32.507 | 1.000000000000000 |2023-08-30 14:59:58.363 | 1.414213562373095 |2023-08-30 16:25:28.882 | 2.000000000000000 |2023-08-30 16:39:29.246 | 1.000000000000000 |> select ts,sqrt(v1) from (select * from t1);ts | sqrt(v1) |
======================================================2023-08-30 14:33:06.691 | 1.000000000000000 |2023-08-30 14:33:12.034 | NULL |2023-08-30 14:48:32.507 | 1.000000000000000 |2023-08-30 14:59:58.363 | 1.414213562373095 |2023-08-30 16:25:28.882 | 2.000000000000000 |2023-08-30 16:39:29.246 | 1.000000000000000 |> select sqrt(100),sqrt(4) from t1 limit 1;sqrt(100) | sqrt(4) |
========================================================10.000000000000000 | 2.000000000000000 |
Query OK, 1 row(s) in set (0.001785s)
TAN
TAN(expr)
功能说明:获得指定字段的正切结果。
返回结果类型:DOUBLE。
适用数据类型:数值类型。
嵌套子查询支持:适用于内层查询和外层查询。
适用于: 表和超级表。
使用说明:只能与普通列,选择(Selection)、投影(Projection)函数一起使用,不能与聚合(Aggregation)函数一起使用。
示例:
> select ts,v1 from t1;ts | v1 |
========================================2023-08-30 14:33:06.691 | 1 |2023-08-30 14:33:12.034 | -1 |2023-08-30 14:48:32.507 | 1 |2023-08-30 14:59:58.363 | 2 |2023-08-30 16:25:28.882 | 4 |2023-08-30 16:39:29.246 | 1 |> select ts,tan(v1) from t1;ts | tan(v1) |
======================================================2023-08-30 14:33:06.691 | 1.557407724654902 |2023-08-30 14:33:12.034 | -1.557407724654902 |2023-08-30 14:48:32.507 | 1.557407724654902 |2023-08-30 14:59:58.363 | -2.185039863261519 |2023-08-30 16:25:28.882 | 1.157821282349577 |2023-08-30 16:39:29.246 | 1.557407724654902 |> select ts,tan(v1) from (select * from t1);ts | tan(v1) |
======================================================2023-08-30 14:33:06.691 | 1.557407724654902 |2023-08-30 14:33:12.034 | -1.557407724654902 |2023-08-30 14:48:32.507 | 1.557407724654902 |2023-08-30 14:59:58.363 | -2.185039863261519 |2023-08-30 16:25:28.882 | 1.157821282349577 |2023-08-30 16:39:29.246 | 1.557407724654902 |> select tan(45*3.1415926/180) from t1 limit 1;tan(45*3.1415926/180) |
============================0.999999973205104 |> select tan(90*3.1415926/180) from t1 limit 1;tan(90*3.1415926/180) |
============================37320539.634354814887047 |