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
英文地址,請注明出處:http://en.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;并…