TDengine 時間函數 DAYOFWEEK 用戶手冊

在這里插入圖片描述

DAYOFWEEK 函數使用手冊

函數描述

DAYOFWEEK 函數用于返回指定日期是一周中的第幾天。該函數遵循標準的星期編號約定,返回值范圍為 1-7,其中:

  • 1 = 星期日 (Sunday)
  • 2 = 星期一 (Monday)
  • 3 = 星期二 (Tuesday)
  • 4 = 星期三 (Wednesday)
  • 5 = 星期四 (Thursday)
  • 6 = 星期五 (Friday)
  • 7 = 星期六 (Saturday)

語法

DAYOFWEEK(date_expression)

參數說明

  • date_expression: 日期表達式,支持以下類型:
    • TIMESTAMP 類型的時間戳
    • BIGINT 類型的 Unix 時間戳(秒或毫秒)
    • VARCHAR/NCHAR 類型的日期字符串
    • NULL 值

返回值

  • 返回類型BIGINT
  • 返回值范圍:1-7(對應星期日到星期六)
  • 如果輸入為 NULL,則返回 NULL

使用示例

1. 使用 TIMESTAMP 類型

-- 查詢當前時間是星期幾
SELECT DAYOFWEEK(NOW()) AS day_of_week;-- 查詢指定時間戳是星期幾
SELECT DAYOFWEEK('2024-01-15 10:30:00') AS day_of_week;
-- 結果: 2 (星期一)

2. 使用 Unix 時間戳

-- 使用秒級時間戳 (2024-01-15 對應的時間戳)
SELECT DAYOFWEEK(1705315800) AS day_of_week;
-- 結果: 4 (星期三)-- 使用毫秒級時間戳  
SELECT DAYOFWEEK(1705315800000) AS day_of_week;
-- 結果: 4 (星期三)

3. 使用日期字符串

-- ISO 格式日期字符串
SELECT DAYOFWEEK('2024-01-15') AS day_of_week;
-- 結果: 2 (星期一)-- 帶時間的日期字符串
SELECT DAYOFWEEK('2024-12-25 12:00:00') AS day_of_week;
-- 結果: 4 (星期三,圣誕節)

4. 在表查詢中使用

-- 假設有一個訂單表 orders,包含 order_time 字段
SELECT order_id,order_time,DAYOFWEEK(order_time) AS order_day,CASE DAYOFWEEK(order_time)WHEN 1 THEN '星期日'WHEN 2 THEN '星期一'WHEN 3 THEN '星期二'WHEN 4 THEN '星期三'WHEN 5 THEN '星期四'WHEN 6 THEN '星期五'WHEN 7 THEN '星期六'END AS day_name
FROM orders
WHERE order_time >= '2024-01-01';

5. 統計分析示例

-- 統計每個工作日的訂單數量
SELECT DAYOFWEEK(order_time) AS day_of_week,COUNT(*) AS order_count
FROM orders
WHERE order_time >= '2024-01-01'
GROUP BY DAYOFWEEK(order_time)
ORDER BY day_of_week;-- 篩選周末的數據
SELECT *
FROM orders  
WHERE DAYOFWEEK(order_time) IN (1, 7)  -- 星期日和星期六
AND order_time >= '2024-01-01';

6. 處理 NULL 值

-- NULL 值處理
SELECT DAYOFWEEK(NULL) AS result;
-- 結果: NULL-- 過濾 NULL 值
SELECT DAYOFWEEK(order_time) AS day_of_week
FROM orders where order_time is not null;

時區注意事項

重要說明

使用 DAYOFWEEK 函數時需要特別注意時區問題,因為不同的時區可能會影響日期的計算結果:

  1. 數據庫時區設置: 函數的結果可能受到數據庫服務器時區設置的影響
  2. 客戶端時區: 客戶端和服務器時區不一致時可能導致結果偏差
  3. UTC 轉換: Unix 時間戳通常基于 UTC,在轉換為本地時間時需要考慮時區偏移

時區相關示例

-- 顯示當前時區設置
SELECT TIMEZONE();-- 在不同時區下同一時間戳可能返回不同的星期幾
-- 例如:UTC 時間 2024-01-01 00:30:00 (星期一)
-- 在 UTC+8 時區顯示為 2024-01-01 08:30:00 (星期一)
-- 在 UTC-5 時區顯示為 2023-12-31 19:30:00 (星期日)SELECT '2024-01-01 00:30:00' AS utc_time,DAYOFWEEK('2024-01-01 00:30:00') AS day_utc;

建議

  1. 統一時區: 在應用中保持數據庫和客戶端時區的一致性
  2. 明確時區: 在處理跨時區數據時,明確指定時區或統一使用 UTC
  3. 測試驗證: 在不同時區環境下測試函數返回結果的正確性

相關函數

  • WEEKDAY(): 返回星期幾(0-6,Monday=0)
  • WEEK(): 返回一年中的第幾周
  • WEEKOFYEAR(): 返回一年中的第幾周(ISO 標準)
  • NOW(): 獲取當前時間戳
  • TIMEZONE(): 獲取當前時區設置

常見用途

  1. 業務分析: 分析不同工作日的業務數據分布
  2. 排班管理: 根據星期幾安排工作計劃
  3. 數據過濾: 篩選工作日或周末的數據
  4. 報表統計: 按星期維度進行數據統計和分析

關于 TDengine

TDengine 專為物聯網IoT平臺、工業大數據平臺設計。其中,TDengine TSDB 是一款高性能、分布式的時序數據庫(Time Series Database),同時它還帶有內建的緩存、流式計算、數據訂閱等系統功能;TDengine IDMP 是一款AI原生工業數據管理平臺,它通過樹狀層次結構建立數據目錄,對數據進行標準化、情景化,并通過 AI 提供實時分析、可視化、事件管理與報警等功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95653.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95653.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95653.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【STM32】貪吃蛇 [階段 3] 增強模塊結構(架構優化)

這篇博客是 承接:【項目思維】貪吃蛇(嵌入式進階方向)中 聚焦于 🧱 階段 3:增強模塊結構(架構優化) 中的 菜單系統(Menu System),這部分的結構優化可以學到的…

江協科技STM32學習筆記補充之004

STM32 ISP 一鍵下載電路(按功能、邏輯與時序拆解)

數據庫小冊(1)

1. 關系型數據庫主要考點關系型數據庫:架構索引鎖語法理論規范2. 如何設計一個關系型數據庫設計即模塊劃分。數據庫最主要的功能是存儲我們的數據,所以需要一個存儲的文件系統。我們要把涉及到的物流數據提供邏輯的形式給組織和表示出來,這是…

記錄收入最高的一次私活 選號網,需要大量賣號的人可能需要,比如游戲腳本批量跑的號

選號網管理后臺(上傳游戲信息、賬號信息、 查看記錄) http://124.223.214.5:180/admin1 選號網客戶端(PC/H5頁面 給客戶篩選商品用) http://124.223.214.5:181/ 該在線地址僅供低頻率測試,正式使用需要另外部署。 功能不滿足可以聯系開發者定制 一、項目的由來 …

熱烈慶祝“中國抗戰勝利80周年”,織信低代碼助力國之重器砥礪前行!

“從保家衛國到科技強軍,織信低代碼平臺為軍工企業數字化轉型注入新動能。”80年后的今天,國人記憶從未褪色。2025年9月3日,正值中國抗戰勝利80周年閱兵之際,我國國防軍工力量在經歷長期的艱苦奮斗后,現今終于迎來了曙…

PostgreSQL與SQL Server:B樹索引差異及去重的優勢

PostgreSQL與SQL Server:B樹索引差異及去重的優勢 在優化查詢性能方面,索引是數據庫工程師可使用的最強大工具之一。PostgreSQL和Microsoft SQL Server(或Azure SQL)都將B樹索引用作其默認索引結構,但每個系統實現、維…

【微實驗】使用MATLAB制作一張賽博古琴?

當一個理工音樂人沒錢去買古琴,我直接用代碼畫一個古琴!目錄 零、總腳本: 一、核心功能:交互模塊拆解 二、核心價值 一、初始化腳本:參數配置與啟動界面 ①廢話不說,直接上代碼 ②代碼模塊拆解與詳細解…

畢業項目推薦:67-基于yolov8/yolov5/yolo11的大棚黃瓜檢測識別系統(Python+卷積神經網絡)

文章目錄 項目介紹大全(可點擊查看,不定時更新中)概要一、整體資源介紹技術要點功能展示:功能1 支持單張圖片識別功能2 支持遍歷文件夾識別功能3 支持識別視頻文件功能4 支持攝像頭識別功能5 支持結果文件導出(xls格式…

無人機小尺寸RFSOC ZU47DR板卡

整板尺寸:120*120mmFPGA: XCZU47DR-2FFVE1156I;DDR:PS側8GB 2400Mhz*64bit / PL側 4GB 2400Mhz*32bit;2路(QSP0QSPI1)/單片512Mb、共計1Gb;千兆以太網:1路(PS側);主要接口資源如下&a…

LangGraph(一):入門從0到1(零基礎)

文章目錄LangGraph入門從0到10?? 安裝 & 確認環境1?? 把 LangGraph 想象成「自動化的做菜流水線」2?? 最小可運行例子:一句話復讀機3?? 加一個小節點:把用戶輸入變大寫4?? 條件邊:如果用戶說 quit 就結束,否則復讀5…

學習數據結構(16)快速排序

快速排序的基本思想:快速排序是Hoare于1962年提出的一種二叉樹結構的交換排序方法,其基本思想為:任取待排序元素序列中的某元素作為基準值,按照該基準值將待排序集合分割成兩子序列,左子序列中所有元素均小于基準值&am…

uni-app iOS 上架常見問題與解決方案,實戰經驗全解析

uni-app 讓開發者能夠“一套代碼,多端運行”,極大降低了開發成本。 但當應用進入 iOS 上架階段 時,不少團隊發現流程并沒有想象中那么順利:證書問題、打包失敗、上傳出錯、審核被拒……這些都可能讓項目卡殼。 本文結合實際案例&a…

洗衣機的智能升級集成方案WT2606B屏幕驅動+AI語音控制

2025,洗衣機市場正從功能滿足轉向體驗升級,企業正面臨哪些轉型難點?一文為您解讀洗衣機行業智能化升級之路。傳統洗衣機就像是一個"沉默的工人",只能通過簡單的LED指示燈告訴你它在工作,卻無法讓你真正了解它在干嘛。用…

機器學習進階,梯度提升機(GBM)與XGBoost

梯度提升機(Gradient Boosting Machine, GBM),特別是其現代高效實現——XGBoost。這是繼隨機森林后自然進階的方向,也是當前結構化數據競賽和工業界應用中最強大、最受歡迎的算法之一。為什么推薦XGBoost? 與隨機森林互…

【ARMv7】開篇:掌握ARMv7架構Soc開發技能

本專欄,開始與大家共同總結使用ARMv7系列CPU的Soc開發技能。大概匯總了一下,后面再逐步完善下面的思維導圖。簡單說說:與通用的ARMv7-A/R相比,以STM32F為代表的ARMv7-M架構有以下關鍵區別和重點:無MMU,有MP…

【學術會議論文投稿】JavaScript在數據可視化領域的探索與實踐

【ACM出版 | EI快檢索 | 高錄用】2024年智能醫療與可穿戴智能設備國際學術會議(SHWID 2024)_艾思科藍_學術一站式服務平臺 更多學術會議請看 學術會議-學術交流征稿-學術會議在線-艾思科藍 目錄 引言 JavaScript可視化庫概覽 D3.js基礎入門 1. 引入…

CSS基礎學習步驟

好的,這是一份為零基礎初學者量身定制的 **CSS 學習基礎詳細步驟**。我們將從最根本的概念開始,通過一步一步的實踐,帶你穩穩地入門。 第一步:建立核心認知 - CSS 是做什么的? 1. 理解角色: HTML&…

MTK Linux DRM分析(三十七)- MTK phy-mtk-hdmi.c 和 phy-mtk-hdmi-mt8173.c

一、簡介 HDMI PHY驅動 HDMI 的物理層接口主要就是 HDMI Type-A 接口(19 pin),除此之外還有 Type-B、Type-C(Mini HDMI)、Type-D(Micro HDMI)、Type-E(車載專用)。 1. HDMI Type-A(常見 19-pin 標準接口) HDMI Type-A Connector Pinout ========================…

【人工智能學習之MMdeploy部署踩坑總結】

【人工智能學習之MMdeploy部署踩坑總結】報錯1:TRTNet: device must be a GPU!報錯2:Failed to create Net backend: tensorrt報錯3:Failed to load library libonnxruntime_providers_shared.so1. 確認庫文件是否存在2. 重新安裝 ONNX Runti…

力扣516 代碼隨想錄Day16 第一題

找二叉樹左下角的值class Solution { public:int maxd0;int result;void traversal(TreeNode* root,int depth){if(root->leftNULL&&root->rightNULL){if(depth>maxd){maxddepth;resultroot->val;}}if(root->left){depth;traversal(root->left,depth…