TDengine 时间函数 TODAY() 用户手册
TODAY() 函数用户手册
函数定义
TODAY()
功能说明
TODAY()
函数返回客户端当日零时(00:00:00)的系统时间。该函数是一个无参数的时间函数,主要用于获取当前日期的开始时间戳。
返回值
- 数据类型: TIMESTAMP
- 精度: 与当前数据库(DATABASE)设置的时间精度一致
适用范围
- 表类型: 表和超级表
- 使用场景: WHERE 子句、INSERT 语句
- 字段类型: 只能作用于 TIMESTAMP 类型的字段
时间运算支持
TODAY()
函数支持时间加减运算,可以与以下时间单位组合使用:
时间单位 | 符号 | 说明 |
---|---|---|
纳秒 | b | nanosecond |
微秒 | u | microsecond |
毫秒 | a | millisecond |
秒 | s | second |
分钟 | m | minute |
小时 | h | hour |
天 | d | day |
周 | w | week |
使用示例
基本用法
-- 获取今日零时时间戳
SELECT TODAY();
时间运算
-- 今日零时加1小时
SELECT TODAY() + 1h;-- 今日零时加30分钟
SELECT TODAY() + 30m;-- 今日零时加1天(即明日零时)
SELECT TODAY() + 1d;-- 今日零时减1天(即昨日零时)
SELECT TODAY() - 1d;
在 WHERE 子句中使用
-- 查询今日的数据
SELECT * FROM table_name WHERE ts >= TODAY() AND ts < TODAY() + 1d;-- 查询今日上午的数据
SELECT * FROM table_name WHERE ts >= TODAY() AND ts < TODAY() + 12h;-- 查询最近7天的数据
SELECT * FROM table_name WHERE ts >= TODAY() - 7d;
在 INSERT 语句中使用
-- 插入今日零时的记录
INSERT INTO table_name (ts, value) VALUES (TODAY(), 100);-- 插入今日中午的记录
INSERT INTO table_name (ts, value) VALUES (TODAY() + 12h, 200);
注意事项
-
时间精度: 返回的时间戳精度取决于当前数据库的时间精度设置(毫秒、微秒或纳秒)
-
客户端时间: 函数返回的是客户端系统的当日零时,而非服务器时间
-
字段限制: 在WHERE或INSERT语句中使用时,只能与TIMESTAMP类型的字段进行比较或赋值
-
保序性: 该函数具有保序特性,在排序场景中表现稳定
相关函数
- NOW(): 返回当前系统时间戳
- TIMETRUNCATE() 时间截断函数
- TIMEDIFF(): 时间差计算函数
关于 TDengine
TDengine 专为物联网IoT平台、工业大数据平台设计。其中,TDengine TSDB 是一款高性能、分布式的时序数据库(Time Series Database),同时它还带有内建的缓存、流式计算、数据订阅等系统功能;TDengine IDMP 是一款AI原生工业数据管理平台,它通过树状层次结构建立数据目录,对数据进行标准化、情景化,并通过 AI 提供实时分析、可视化、事件管理与报警等功能。