SQL中對時間操作的函數

以下是SQL中常用時間操作函數的匯總,按功能分類整理,結合多個權威來源內容綜合而成:

一、獲取當前時間

函數名稱功能說明示例適用數據庫
CURDATE()獲取當前日期(不含時間)SELECT CURDATE();2024-08-21MySQL, MariaDB
CURRENT_DATE()CURDATE()(標準SQL)SELECT CURRENT_DATE;多數數據庫
NOW()獲取當前日期和時間SELECT NOW();2024-08-21 10:41:41MySQL, SQL Server
GETDATE()獲取當前日期時間(SQL Server專用)SELECT GETDATE();SQL Server
CURRENT_TIMESTAMP獲取當前時間戳(帶時區)SELECT CURRENT_TIMESTAMP;PostgreSQL, Oracle

二、提取時間部分

函數名稱功能說明示例適用數據庫
YEAR(date)提取年份YEAR('2024-08-21')2024MySQL, SQL Server
MONTH(date)提取月份(1-12)MONTH('2024-08-21')8通用
DAY(date)提取日(1-31)DAY('2024-08-21')21通用
HOUR(time)提取小時(0-23)HOUR('10:41:41')10MySQL, SQL Server
MINUTE(time)提取分鐘(0-59)MINUTE('10:41:41')41通用
SECOND(time)提取秒(0-59)SECOND('10:41:41')41通用
EXTRACT(unit FROM date)靈活提取指定部分(年/月/日等)EXTRACT(YEAR FROM '2024-08-21')2024PostgreSQL, MySQL

三、時間計算與操作

函數名稱功能說明示例適用數據庫
DATE_ADD(date, INTERVAL expr unit)日期增加指定時間間隔DATE_ADD('2024-08-21', INTERVAL 7 DAY)2024-08-28MySQL
DATE_SUB(date, INTERVAL expr unit)日期減去指定時間間隔DATE_SUB('2024-08-21', INTERVAL 1 MONTH)2024-07-21MySQL
DATEDIFF(date1, date2)計算兩個日期相差的天數DATEDIFF('2024-08-21', '2024-08-01')20MySQL, SQL Server
TIMESTAMPDIFF(unit, start, end)按單位計算時間差(天/小時等)TIMESTAMPDIFF(DAY, '2024-08-01', '2024-08-21')20MySQL
ADDDATE(date, days)日期增加指定天數ADDDATE('2024-08-21', 7)2024-08-28MySQL

四、時間格式化與轉換

函數名稱功能說明示例適用數據庫
DATE_FORMAT(date, format)按指定格式輸出日期DATE_FORMAT('2024-08-21', '%Y年%m月%d日')2024年08月21日MySQL
TO_CHAR(date, format)日期轉字符串(PostgreSQL/Oracle)TO_CHAR('2024-08-21', 'YYYY-MM-DD')2024-08-21PostgreSQL, Oracle
STR_TO_DATE(str, format)字符串轉日期STR_TO_DATE('2024年08月21日', '%Y年%m月%d日')2024-08-21MySQL
UNIX_TIMESTAMP(date)日期轉Unix時間戳UNIX_TIMESTAMP('2024-08-21')1724208000MySQL
FROM_UNIXTIME(unixtime)Unix時間戳轉日期FROM_UNIXTIME(1724208000)2024-08-21 00:00:00MySQL

五、實用場景函數

  1. 查詢今天數據
    SELECT * FROM orders WHERE DATE(created_at) = CURDATE();
    
  2. 查詢昨天數據
    SELECT * FROM orders WHERE DATE(created_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY);
    
  3. 查詢未來7天數據
    SELECT * FROM events WHERE event_date BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY);
    
  4. 計算工齡(年)
    SELECT TIMESTAMPDIFF(YEAR, hire_date, CURDATE()) AS years_of_service FROM employees;
    

關鍵注意事項

  1. 數據庫差異
    • SQL Server使用GETDATE()而非NOW(),日期加減用DATEADD()/DATEDIFF()
    • Oracle使用SYSDATE獲取當前時間,TO_DATE()轉換字符串。
  2. 時區處理
    • CURRENT_TIMESTAMP返回帶時區的時間,需結合CONVERT_TZ()轉換時區(MySQL)。
  3. 性能優化
    • 避免在WHERE條件中對列使用函數(如YEAR(date)=2024),可能導致索引失效。

完整函數列表及語法細節可參考:MySQL日期函數文檔、SQL Server時間函數。


以上內容由AI生成,僅供參考和借鑒

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

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

相關文章

NUS PC5215 Lecture分析 Week1 Python基礎

NUS PC5215 Lecture分析 Week1 Python基礎前言Python基礎數據類型保留字表達式Import 相關庫IEEE浮點數前言 課程網站 作為一名計算機本科畢業的學生,該課程有點類似于本科期間學的數值分析的進化版,大抵是教會你如何實現各種方法,諸如蒙特卡…

模型私有化部署(Ollama vLLM LMDeploy)

一、魔塔社區平臺介紹 1.1 什么是魔塔社區? 魔塔(ModelScope)是由阿里巴巴達摩院推出的開源模型即服務(MaaS)共享平臺,匯聚了計算機視覺、自然語言處理、語音等多領域的數千個預訓練AI模型。其核心理念是…

C++編程實踐--資源管理、標準庫、并發與并行

文章目錄 資源管理 資源訪問 指向資源句柄或描述符的變量,在資源釋放后立即賦予新值 lambda函數 當lambda會逃逸出函數外面時,禁止按引用捕獲局部變量 避免lambda表達式使用默認捕獲模式 資源分配與回收 避免出現delete this操作 使用恰當的方式處理new操作符的內存分配錯誤 …

“R語言+遙感”的水環境綜合評價方法實踐技術應用

專題一、R語言概述1.1 R語言特點(R語言)1.2 安裝R(R語言)1.3 安裝RStudio(R語言)(1)下載地址(2)安裝步驟(3)軟件配置1.4 第一個程序He…

【項目復盤】【四軸飛行器設計】驅動開發部分

由于在參加面試時總需要花時間一點一點的回憶自己的項目內容,故我打算直接寫一系列的項目復盤博客,方便每次面試前的回憶。內容僅作分享交流,如有謬誤歡迎指正。 本項目系列的文章目錄如下: 【項目復盤】【四軸飛行器設計】驅動…

wpf之ComboBox

前言 wpf中ComboBox的應用非常廣泛&#xff0c;本文就來介紹ComboBox在wpf中的應用。 1、非MVVM模式下 1.1 xaml添加元素<ComboBox x:Name"cbx_test1" SelectedIndex" 0" ><ComboBoxItem >小明</ComboBoxItem ><ComboBoxItem &g…

從零開始學AI——13

前言 夏天快要過去&#xff0c;本書也快接近尾聲了。 第十三章 13.1 半監督學習 在此之前&#xff0c;我們討論的所有學習范式都具有非常明確的邊界條件&#xff1a; 監督學習&#xff1a;我們擁有大量帶標簽的數據樣本(xi,yi)(x_i, y_i)(xi?,yi?)&#xff0c;目標是學習從輸…

k8sday12數據存儲(1/2)

目錄 一、簡單基本存儲 1、EmptyDir 1.1概念 1.2作用 1.3配置文件 1.4測試 2、HostPath 2.1概念 2.2作用 2.3配置文件 2.4測試 ①、數據共享 ②、持久化存儲 3、NFS 3.1概念 3.2作用 3.3NFS服務安裝 ①、設置主節點為NFS服務器 ②、給副節點安裝NFS客戶端工…

Spring Framework 常用注解詳解(按所屬包分類整理)

在使用 Spring Framework 進行開發時&#xff0c;注解&#xff08;Annotation&#xff09;是實現 依賴注入&#xff08;DI&#xff09;、組件掃描、AOP 切面、事務管理 和 Web 請求映射 的核心手段。Spring 提供了豐富且結構清晰的注解體系&#xff0c;這些注解按照功能被組織在…

ROADS落地的架構藍圖

2 ROADS落地的架構藍圖 將ROADS體驗從理念轉化為現實&#xff0c;需要一套完整且自頂向下的架構藍圖作為支撐。華為的實踐表明&#xff0c;數字化轉型的成功依賴于多個架構層次的協同推進&#xff0c;而非單點技術的應用。該藍圖通常包含以下五個關鍵層次&#xff0c;每一層都承…

如何構建一個神經網絡?從零開始搭建你的第一個深度學習模型

在深度學習的海洋中&#xff0c;神經網絡就像一艘船&#xff0c;承載著數據的流動與特征的提取。而構建一個神經網絡&#xff0c;就像是在設計這艘船的結構。本文將帶你一步步了解如何使用 PyTorch 構建一個完整的神經網絡模型&#xff0c;涵蓋網絡層的組織、前向傳播與反向傳播…

自學嵌入式第二十三天:數據結構(3)-雙鏈表

一、strtokchar * strtok(char *s1,char *s2);截斷字符串&#xff0c;在s1字符串中找到s2截取前一段返回&#xff0c;如需要再次截取剩余段&#xff0c;再使用此函數s1輸入NULL即可&#xff1b;二、bzerobzero(char *p,size_t size);清零,從p地址開始&#xff0c;清零size個bit…

河南萌新聯賽2025第六場 - 鄭州大學

暑期集訓已經接近尾聲&#xff0c;一年六場的暑期萌新聯賽也已經結束了&#xff0c;進步是比較明顯的&#xff0c;從一開始的七八百名到三四百名&#xff0c;雖然拿不出手&#xff0c;但是這也算對兩個月的集訓的算法初學者的我一個交代。 比賽傳送門&#xff1a;河南萌新聯賽…

2-1.Python 編碼基礎 - 基礎運算符(算術運算符、賦值運算符、比較運算符、邏輯運算符)

一、算術運算符 1、基本介紹編號運算符說明示例輸出結果1兩數相加10 20302-兩數相減10 - 20-103*兩數相乘&#xff0c;或者返回一個被重復若干次的字符串10 * 202004/兩數相除10 / 200.55//兩數相除并返回商的整數部分9 // 246%兩數相除并返回余數10 % 507**冪運算10 ** 21002…

CMOS知識點 MOS管不同工作區域電容特性

知識點14&#xff1a;MOSFET的電容主要來源于其物理結構&#xff1a;柵氧層電容&#xff1a;柵極&#xff08;G&#xff09;與襯底&#xff08;B&#xff09;、溝道、源&#xff08;S&#xff09;、漏&#xff08;D&#xff09;之間隔著二氧化硅絕緣層&#xff0c;自然形成電容…

預測性維護+智能優化:RK3568+FPGA方案在儲能行業的應用

在儲能行業&#xff0c;RK3568FPGA方案通過預測性維護和智能優化技術&#xff0c;顯著提升系統可靠性和經濟性。該方案采用異構架構&#xff08;FPGA處理高速信號采集&#xff0c;RK3568負責策略計算與通信管理&#xff09;&#xff0c;實現微秒級響應和精準控制。?26一、預測…

工業4.0時代,耐達訊自動化Profibus轉光纖如何重構HMI通信新標準?“

在智能制造與工業4.0浪潮下&#xff0c;HMI&#xff08;人機界面&#xff09;作為設備與操作員之間的“橋梁”&#xff0c;承擔著實時數據顯示、設備監控及交互控制的核心職能。然而&#xff0c;傳統Profibus總線在HMI連接中常因電磁干擾、傳輸距離限制等問題&#xff0c;導致畫…

SpringClound——網關、服務保護和分布式事務

一、網關網絡的關口&#xff0c;負責請求的路由、轉發、身份驗證server:port: 8080 spring:cloud:nacos:discovery:server-addr: 192.168.96.129:8848gateway:routes:- id: item-serviceuri: lb://item-servicepredicates:- Path/items/**,/search/**- id: user-serviceuri: lb…

【C++】模版(初階)

目錄 一. 函數模版 1. 格式 原理 2. 函數模版的實例化 二. 類模板 void Swap(int& left, int& right) {int temp left;left right;right temp; }void Swap(double& left, double& right) {double temp left;left right;right temp; }void Swap(char&…

InfluxDB 開發工具鏈:IDE 插件與調試技巧(二)

四、利用 IDE 插件提升開發效率 4.1 代碼編寫技巧 在使用安裝了 InfluxDB 插件的 IDE 進行代碼編寫時&#xff0c;我們可以充分利用插件提供的代碼導航和智能提示功能&#xff0c;來顯著提高編寫 InfluxDB 相關代碼的效率和準確性。 以一個涉及多個 Measurement 和復雜查詢條…