TDengine 时序函数 NOW() 用户手册

在这里插入图片描述

TDengine NOW() 函数用户使用手册

目录

  • 功能概述
  • 函数语法
  • 返回值说明
  • 技术特性
  • 使用场景及示例
  • 时间运算操作
  • 注意事项
  • 常见问题

功能概述

NOW() 函数是 TDengine 中的时间函数,用于获取客户端当前系统时间。该函数在时序数据库中特别有用,可以用于数据插入、时间过滤、时间计算等多种场景。

函数语法

NOW()

返回值说明

  • 数据类型:TIMESTAMP
  • 时间精度:与当前 DATABASE 设置的时间精度一致
  • 时间格式:根据数据库精度返回相应格式的时间戳

技术特性

时间精度支持

根据源码分析,NOW() 函数支持以下时间精度:

  • 毫秒精度 (TSDB_TIME_PRECISION_MILLI)
  • 微秒精度 (TSDB_TIME_PRECISION_MICRO)
  • 纳秒精度 (TSDB_TIME_PRECISION_NANO)

适用范围

  • 表类型:适用于表和超级表
  • 字段类型:在 WHERE 或 INSERT 语句中只能作用于 TIMESTAMP 类型字段
  • 嵌套查询:支持内层查询和外层查询

使用场景及示例

1. 基础查询获取当前时间

-- 获取当前系统时间
SELECT NOW() AS current_timestamp;

输出示例

+-------------------------+
| current_timestamp       |
+-------------------------+
| 2025-09-03 14:30:25.123 |
+-------------------------+

2. 数据插入场景

创建表结构
-- 创建传感器数据表
CREATE STABLE sensors (ts TIMESTAMP,temperature FLOAT,humidity FLOAT
) TAGS (device_id INT, location NCHAR(50));-- 创建子表
CREATE TABLE sensor_001 USING sensors TAGS (1, '北京机房');
插入当前时间数据
-- 使用 NOW() 插入当前时间戳
INSERT INTO sensor_001 VALUES (NOW(), 25.6, 60.8);-- 批量插入多条记录
INSERT INTO sensor_001 VALUES (NOW(), 25.6, 60.8),(NOW() - 1m, 25.2, 61.2),(NOW() - 2m, 24.8, 61.5);

3. 数据查询和过滤

查询最近时间范围的数据
-- 查询最近1小时的数据
SELECT * FROM sensor_001 
WHERE ts > NOW() - 1h;-- 查询最近24小时的数据
SELECT * FROM sensor_001 
WHERE ts BETWEEN NOW() - 1d AND NOW();-- 查询今天的数据
SELECT * FROM sensor_001 
WHERE ts >= TODAY() AND ts < NOW();
实时数据监控
-- 查询最近5分钟内的平均温度
SELECT AVG(temperature) as avg_temp 
FROM sensor_001 
WHERE ts > NOW() - 5m;-- 查询当前时间前后30秒的数据
SELECT * FROM sensor_001 
WHERE ts BETWEEN NOW() - 30s AND NOW() + 30s;

4. 时间差计算

-- 计算数据记录距离当前时间的秒数差
SELECT ts, temperature, (NOW() - ts) / 1000000 AS seconds_ago
FROM sensor_001 
ORDER BY ts DESC 
LIMIT 10;-- 查找超过1小时未更新的设备
SELECT device_id, MAX(ts) as last_update,(NOW() - MAX(ts)) / 1000000 / 3600 AS hours_since_update
FROM sensors 
GROUP BY device_id
HAVING hours_since_update > 1;

5. 数据分析场景

按时间窗口聚合
-- 按小时聚合最近24小时的数据
SELECT _wstart as hour_start,AVG(temperature) as avg_temp,MAX(temperature) as max_temp,MIN(temperature) as min_temp
FROM sensor_001 
WHERE ts > NOW() - 1d
INTERVAL(1h);-- 实时滑动窗口分析
SELECT _wstart,COUNT(*) as record_count,AVG(temperature) as avg_temp
FROM sensor_001 
WHERE ts > NOW() - 2h
INTERVAL(10m) SLIDING(1m);

时间运算操作

NOW() 函数支持时间加减运算,支持的时间单位包括:

时间单位符号说明示例
纳秒bnanosecondNOW() + 100b
微秒umicrosecondNOW() - 500u
毫秒amillisecondNOW() + 200a
ssecondNOW() - 30s
分钟mminuteNOW() + 15m
小时hhourNOW() - 2h
ddayNOW() + 1d
wweekNOW() - 1w

时间运算示例

-- 各种时间单位的运算示例
SELECT NOW() as current_time,NOW() + 1s as one_second_later,NOW() - 30m as thirty_minutes_ago,NOW() + 2h as two_hours_later,NOW() - 1d as yesterday_same_time,NOW() + 1w as next_week_same_time;-- 复合时间运算
SELECT * FROM sensor_001 
WHERE ts BETWEEN NOW() - 1d - 30m AND NOW() - 30m;-- 时间边界查询
SELECT * FROM sensor_001 
WHERE ts > NOW() - 1h + 100a;  -- 1小时前再加100毫秒

注意事项

1. 时间精度一致性

-- 确保时间精度与数据库设置一致
-- 如果数据库精度为毫秒,NOW() 返回毫秒精度时间戳
-- 如果数据库精度为微秒,NOW() 返回微秒精度时间戳

2. 客户端时间 vs 服务器时间

-- NOW() 返回客户端系统时间,不是服务器时间
-- 在分布式环境中需要注意时间同步问题

3. 性能考虑

-- 在大量数据查询中,建议将 NOW() 的结果先计算出来
-- 避免在循环或大量记录处理中重复调用 NOW()-- 推荐做法
SELECT @current_time := NOW();
SELECT * FROM sensor_001 WHERE ts > @current_time - 1h;-- 不推荐在大数据量情况下
SELECT * FROM huge_table WHERE ts > NOW() - 1h;  -- 每行都会计算NOW()

常见问题

Q1: NOW() 与 TODAY() 的区别?

-- NOW() 返回完整的当前时间戳(包含时分秒)
SELECT NOW();  -- 2025-09-03 14:30:25.123-- TODAY() 返回当前日期的0点时间戳
SELECT TODAY();  -- 2025-09-03 00:00:00.000

Q2: 如何处理时区问题?

-- TDengine 中的时间戳通常是UTC时间
-- 需要在应用层进行时区转换
-- 或使用时区相关函数进行处理

Q3: 在INSERT语句中使用NOW()的最佳实践?

-- 对于实时数据,推荐使用NOW()
INSERT INTO sensor_001 VALUES (NOW(), 25.6, 60.8);-- 对于批量导入历史数据,使用具体时间戳
INSERT INTO sensor_001 VALUES ('2025-09-03 10:00:00', 25.1, 60.2),('2025-09-03 10:01:00', 25.3, 60.5);

Q4: NOW()在WHERE子句中的优化?

-- 对于频繁查询,可以预先计算时间边界
SET @start_time = NOW() - 1h;
SET @end_time = NOW();SELECT * FROM sensor_001 
WHERE ts BETWEEN @start_time AND @end_time;

总结

NOW() 函数是 TDengine 中非常重要的时间函数,特别适用于:

  • 实时数据插入和时间戳记录
  • 时间范围查询和数据过滤
  • 时间差计算和数据分析
  • 实时监控和报警系统

正确使用 NOW() 函数可以大大提高时序数据处理的效率和准确性。在实际应用中,需要注意时间精度、性能优化和时区处理等方面的问题。

关于 TDengine

TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。

它能安全高效地将大量设备每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,并提供 AI 智能体对数据进行预测与异常检测,提供实时的商业洞察。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/921367.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/921367.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb ——事务管理

文章目录事务管理事务回顾Spring事务管理事务进阶事务属性 - 回滚 rollbackFor事务属性 - 传播行为 propagationSpring框架第一大核心: IOC控制反转&#xff0c; 其第二大核心就是 AOP 面向切面编程 事务管理 事务回顾 Spring事务管理 # spring 事务管理日志 logging:level:org…

【跨国数仓迁移最佳实践8】MaxCompute Streaming Insert: 大数据数据流写业务迁移的实践与突破

本系列文章将围绕东南亚头部科技集团的真实迁移历程展开&#xff0c;逐步拆解 BigQuery 迁移至 MaxCompute 过程中的关键挑战与技术创新。本篇为第八篇&#xff0c;MaxCompute Streaming Insert&#xff1a; 大数据数据流写业务迁移的实践与突破。注&#xff1a;客户背景为东南…

2025-09-05 CSS4——浮动与定位

文章目录1 显示&#xff08;Display&#xff09;1.1 visibility:hidden1.2 display:none2 块和内联元素2.1 块元素2.2 内联元素2.3 改变元素的显示方式3 浮动&#xff08;Float&#xff09;3.1 float 属性3.2 clear 属性4 定位&#xff08;Position&#xff09;4.1 五种定位模式…

43这周打卡——生成手势图像 (可控制生成)

目录 前言 1.导入数据及数据可视化 2.构建模型 3.训练模型 4.模型分析并生成指定图像 总结 前言 &#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 1.导入数据及数据可视化 from torchvision import data…

TDengine 时间函数 TIMEDIFF() 用户手册

TDengine TIMEDIFF() 函数详细使用手册 目录 功能概述函数语法参数说明返回值说明版本变更说明技术特性使用场景及示例时间单位处理数据类型兼容性注意事项常见问题最佳实践 功能概述 TIMEDIFF() 函数用于计算两个时间戳的差值&#xff0c;返回 expr1 - expr2 的结果。结果…

【2025ICCV-持续学习方向】一种用于提示持续学习(Prompt-based Continual Learning, PCL)的新方法

1. 背景与问题 (Background & Problem):​​ ​持续学习 (CL):​​ 目标是在不遗忘旧任务知识的情况下,让模型持续学习一系列新任务。主要挑战是灾难性遗忘。 ​基于提示的持续学习 (PCL):​​ 利用预训练视觉Transformer (ViT),冻结其权重,通过微调称为“提示”(prompt…

2025 年 08 月 GitHub 十大热门项目排行榜

欢迎来到 2025 年 8 月 GitHub 热门开源项目排行榜&#xff01;本月榜单集中展示了来自智能体平台、AI 编程助手、多模态角色系统、本地化部署工具到可视化白板与企业协同平台的多元创新。从构建 AI 助手中枢的 Archon&#xff0c;到终端 AI 编码拍档 Crush&#xff0c;再到虚拟…

LeetCode每日一题,2025-9-4

多数元素 投票法 让你找到序列中出现超过二分之一的元素&#xff0c;一定要记住这个规则。 记录两个值val和cnt&#xff0c;刚开始val为任意数&#xff0c;cnt0。 如果cnt是0&#xff0c;就把当前val num。接下来判断&#xff0c;ifnum val&#xff0c;则cnt &#xff0c;e…

第7章 安全配置

7.1 安全概述 Jenkins安全威胁 常见安全风险&#xff1a; 访问控制风险&#xff1a; - 未授权访问Jenkins实例 - 权限提升攻击 - 横向移动攻击 - 敏感信息泄露代码执行风险&#xff1a; - 恶意脚本注入 - 构建脚本篡改 - 插件漏洞利用 - 远程代码执行数据安全风险&#xff1a; …

腾讯混元世界模型Voyager开源:单图生成3D世界的“核弹级”突破,游戏、VR、自动驾驶迎来新变量

当AI绘画、视频生成技术逐渐从“新鲜感”走向“实用化”&#xff0c;3D内容生成却始终卡在“效率低、成本高、门槛高”的瓶颈里。传统3D建模需要专业软件、大量人工调整&#xff0c;甚至依赖昂贵的硬件设备&#xff0c;让中小团队和个人创作者望而却步。 但腾讯AI实验室最近开…

数据库(基础操作)

SQL 结构化的查询语句 我们现在需要写SQL语句 --- 这个玩意儿就是数据库的操作语句我们的数据库就类似于一个excl表格它有n列&#xff0c;每一列为一个大类&#xff0c;数据以行存在&#xff0c;一行代表一个条目数据如&#xff1a;我现在想建立一个数据库保存学生的信息你需要…

linux ubi文件系统

1&#xff0c;UBI&#xff08;Unsorted Block Images&#xff09;是 Linux 内核中为原始 Flash 设备提供的一种抽象层&#xff0c;位于 MTD&#xff08;Memory Technology Device&#xff09;和文件系统&#xff08;如 UBIFS&#xff09;之间。它负责坏块管理、磨损均衡、逻辑卷…

深度厚金板PCB与厚铜PCB的区别

厚金板PCB和厚铜PCB在电子制造领域都有重要应用&#xff0c;它们有着不同的特点和适用场景。下面为你详细介绍二者的区别。厚金PCB是什么厚金PCB是在印制电路板表面镀上较厚金层的电路板。这层厚金能提升电路板的导电性、抗氧化性和耐磨性。在一些对信号传输要求极高、使用环境…

一阶低通滤波器应用示例(演示)

1. 代码 这段代码实现了一个一阶低通滤波器&#xff08;也称为指数加权移动平均滤波器&#xff09;。它适用于需要平滑数据、减少噪声的场合。以下是一些常见的应用场景&#xff1a; 传感器数据平滑&#xff1a;在嵌入式系统或物联网设备中&#xff0c;传感器&#xff08;如温度…

RT-Thread源码分析字节实现socket源码

无论是客户端还是服务器程序&#xff0c;发送的底层都是发送AT指令&#xff1a;1&#xff09;发送命令到串口&#xff1b;2&#xff09;阻塞等待返回结果接收的底层都是1&#xff09;阻塞等待&#xff1b;2&#xff09;被唤醒后拷贝处理数据两者均由后台任务唤醒&#xff0c;后…

keil 5 STM32工程介绍

目录 一、工程文件介绍 1.自动生成的文件 2.自建文件 &#xff08;1&#xff09;USER 文件夹 &#xff08;2&#xff09;FWLIB 文件夹 &#xff08;3&#xff09;CMSIS 文件夹 二、工程创建教程 1.下载固件库 2.创建工程 &#xff08;1&#xff09;创建不完善的工程 …

AI大模型如何重塑日常?从智能办公到生活服务的5个核心改变

AI大模型重塑日常&#xff1a;从智能办公到生活服务的5个核心改变一、引言• 简述AI大模型技术的快速发展背景&#xff0c;说明其已从技术领域逐步渗透到大众日常生活• 提出核心观点&#xff1a;AI大模型正从办公和生活服务两大场景&#xff0c;深度改变人们的行为模式与…

迈威通信从送快递角度教你分清网络二层和三层

还在为网络里的二层、三层概念头大?其实就像送快递那么简单!今天迈威通信用最接地气的方式给你讲明白&#xff5e;网络传输 送快递?没错!二层网络&#xff1a;本地送货员负责同小区的包裹配送(局域网传输)&#xff0c;就像小区里的快递站(对应设备&#xff1a;交换机)&#…

【Linux】网络安全管理:SELinux 和 防火墙联合使用 | Redhat

本专栏文章持续更新&#xff0c;新增内容使用蓝色表示。 往期相关内容 【Linux】权限管理详解&#xff08;三&#xff09;&#xff1a;SELinux安全性管理 | Redhat-CSDN博客 【Linux】网络安全管理&#xff1a;Netfilter、nftables 与 Firewalld | Redhat_linux netfilter-C…

微论-构建完整的智能环:具身智能系统的层级化架构探析

### **构建完整的智能环&#xff1a;具身智能系统的层级化架构探析**#### **引言&#xff1a;迈向与现实交互的智能**人工智能的发展正经历一场从“虚拟”走向“现实”的范式迁移。具身智能&#xff0c;作为这一浪潮的核心&#xff0c;强调智能体必须拥有“身体”&#xff0c;并…