以下内容来自 TDengine 官方文档 及
GitHub 内容 。以下所有示例基于 TDengine 3.1.0.3
1.数学函数
2.字符串函数
3.转换函数
4.时间和日期函数
5.聚合函数
6.选择函数
7.时序数据库特有函数
8.系统函数
NOW()
功能说明:返回客户端当前系统时间。
返回结果数据类型:TIMESTAMP。
应用字段:在 WHERE 或 INSERT 语句中使用时只能作用于 TIMESTAMP 类型的字段。
适用于:表和超级表。
嵌套子查询支持:适用于内层查询和外层查询。
使用说明:
示例:
> create table t4 (ts timestamp, v1 int);
> insert into t4 values(now,1);
> insert into t4 values(now,2);
> insert into t4 values(now,3);
> select * from t4;
ts | v1 |
========================================
2023-08-31 09:27:36.033 | 1 |
2023-08-31 09:27:38.275 | 2 |
2023-08-31 09:27:40.270 | 3 |
> select * from t4 where ts>now-60s;
ts | v1 |
========================================
2023-08-31 09:27:36.033 | 1 |
2023-08-31 09:27:38.275 | 2 |
2023-08-31 09:27:40.270 | 3 |
TIMEDIFF(expr1, expr2 [, time_unit])
功能说明:计算两个时间戳之间的差值,并近似到时间单位 time_unit 指定的精度。
返回结果数据类型:BIGINT。
应用字段:表示 UNIX 时间戳的 BIGINT, TIMESTAMP 类型,或符合日期时间格式的 VARCHAR, NCHAR 类型。
适用于:表和超级表。
嵌套子查询支持:适用于内层查询和外层查询。
使用说明:
示例:
> create table t5 (ts1 timestamp,ts2 timestamp);
> insert into t5 values(now,now-1s);
> insert into t5 values(now,now-2s);
> insert into t5 values(now,now-3s);
taos> select * from t5;
ts1 | ts2 |
====================================================
2023-08-31 09:32:54.649 | 2023-08-31 09:32:53.649 |
2023-08-31 09:32:57.637 | 2023-08-31 09:32:55.637 |
2023-08-31 09:32:59.935 | 2023-08-31 09:32:56.935 |
> select timediff(ts1,ts2) from t5;
timediff(ts1,ts2) |
========================
1000 |
2000 |
3000 |
> select timediff(ts1,ts2,1s) from t5;
timediff(ts1,ts2,1s) |
========================
1 |
2 |
3 |
> select timediff(ts1,ts2,1m) from t5;
timediff(ts1,ts2,1m) |
========================
0 |
0 |
0 |
> select timediff(ts1,ts2,1u) from t5;
DB error: TIMEDIFF function time unit parameter should be greater than db precision (0.000294s)
TIMETRUNCATE(expr, time_unit [, ignore_timezone])
ignore_timezone: {
0
| 1
}
功能说明:将时间戳按照指定时间单位 time_unit 进行截断。
返回结果数据类型:TIMESTAMP。
应用字段:表示 UNIX 时间戳的 BIGINT, TIMESTAMP 类型,或符合日期时间格式的 VARCHAR, NCHAR 类型。
适用于:表和超级表。
使用说明:
示例:
> select ts1 from t5;
ts1 |
==========================
2023-08-31 09:32:54.649 |
2023-08-31 09:32:57.637 |
2023-08-31 09:32:59.935 |
> select timetruncate(ts1,1s) from t5;
timetruncate(ts1,1s) |
==========================
2023-08-31 09:32:54.000 |
2023-08-31 09:32:57.000 |
2023-08-31 09:32:59.000 |
> select timetruncate(ts1,1m) from t5;
timetruncate(ts1,1m) |
==========================
2023-08-31 09:32:00.000 |
2023-08-31 09:32:00.000 |
2023-08-31 09:32:00.000 |
> select timetruncate(ts1,1h) from t5;
timetruncate(ts1,1h) |
==========================
2023-08-31 09:00:00.000 |
2023-08-31 09:00:00.000 |
2023-08-31 09:00:00.000 |
> select timetruncate(ts1,1d) from t5;
timetruncate(ts1,1d) |
==========================
2023-08-31 00:00:00.000 |
2023-08-31 00:00:00.000 |
2023-08-31 00:00:00.000 |
> select timetruncate(ts1,1d,0) from t5;
timetruncate(ts1,1d,0) |
==========================
2023-08-31 08:00:00.000 |
2023-08-31 08:00:00.000 |
2023-08-31 08:00:00.000 |
> select timetruncate(ts1,1d,1) from t5;
timetruncate(ts1,1d,1) |
==========================
2023-08-31 00:00:00.000 |
2023-08-31 00:00:00.000 |
2023-08-31 00:00:00.000 |
> select timetruncate('2023-01-01T12:01:00+09:00',1h,1) from t5;
timetruncate('2023-01-01T12:01:00+09:00',1h,1) |
=================================================
2023-01-01 11:00:00.000 |
2023-01-01 11:00:00.000 |
2023-01-01 11:00:00.000 |
> select timetruncate('2023-01-01T12:01:00+09:00',1h,0) from t5;
timetruncate('2023-01-01T12:01:00+09:00',1h,0) |
=================================================
2023-01-01 11:00:00.000 |
2023-01-01 11:00:00.000 |
2023-01-01 11:00:00.000 |
TIMEZONE()
功能说明:返回客户端当前时区信息。
返回结果数据类型:VARCHAR。
应用字段:无
适用于:表和超级表。
示例:
> show variables;
name | value | scope |
=========================================================================================
statusInterval | 1 | server |
timezone | Asia/Shanghai (CST, +0800) | both |
locale | en_US.UTF-8 | both |
charset | UTF-8 | both |
> select timezone() from t5 limit 1;
timezone() |
===========================================
Asia/Shanghai (CST, +0800) |
TODAY()
功能说明:返回客户端当日零时的系统时间。
返回结果数据类型:TIMESTAMP。
应用字段:在 WHERE 或 INSERT 语句中使用时只能作用于 TIMESTAMP 类型的字段。
适用于:表和超级表。
使用说明:
示例:
> select today() from t5 limit 1;
today() |
==========================
2023-08-31 00:00:00.000 |
> select today()+1h from t5 limit 1;
today()+1h |
==========================
2023-08-31 01:00:00.000 |
> select today(),now from t5 limit 1;
today() | now |
====================================================
2023-08-31 00:00:00.000 | 2023-08-31 09:44:40.058 |