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 |