⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

SQL 日期函数

学习日期和时间处理函数 · 难度:进阶 · +15XP

SQL 日期函数

日期和时间是数据库中最常见的数据类型之一。无论是记录用户的注册时间、订单的下单时间,还是计算两个日期之间的间隔天数,都离不开日期函数的支持。不同的数据库系统有各自的日期函数,但核心功能大同小异,主要包括获取当前时间日期格式化日期计算以及提取日期部分

获取当前日期时间

几乎所有数据库都提供获取当前时间戳的函数:

-- MySQL / MariaDB
SELECT NOW();           -- 2024-01-15 10:30:00
SELECT CURDATE();       -- 2024-01-15
SELECT CURTIME();       -- 10:30:00

-- SQLite SELECT DATE('now'); -- 2024-01-15 SELECT DATETIME('now'); -- 2024-01-15 10:30:00 SELECT TIME('now'); -- 10:30:00

-- PostgreSQL SELECT NOW(); -- 时间戳带时区 SELECT CURRENT_DATE; -- 当前日期 SELECT CURRENT_TIME; -- 当前时间

-- SQL Server SELECT GETDATE(); -- 当前日期时间 SELECT GETUTCDATE(); -- UTC 时间

日期计算(加减运算)

日期计算是最常用的功能之一,例如计算 7 天前、30 天后等:

-- SQLite 日期计算
SELECT DATE('now', '+7 days');      -- 7天后
SELECT DATE('now', '-1 month');     -- 1月前
SELECT DATE('now', '+1 year');      -- 1年后
SELECT DATE('now', 'start of month'); -- 本月第一天

-- MySQL 日期计算 SELECT DATE_ADD('2024-01-15', INTERVAL 7 DAY); SELECT DATE_SUB('2024-01-15', INTERVAL 1 MONTH); SELECT DATEDIFF('2024-01-31', '2024-01-01'); -- 30天

日期格式化

-- SQLite strftime
SELECT strftime('%Y-%m-%d', 'now');           -- 2024-01-15
SELECT strftime('%Y年%m月%d日', 'now');        -- 2024年01月15日
SELECT strftime('%H:%M:%S', 'now');           -- 10:30:00

-- MySQL DATE_FORMAT SELECT DATE_FORMAT(NOW(), '%Y-%m-%d'); SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i:%s');

-- PostgreSQL TO_CHAR SELECT TO_CHAR(NOW(), 'YYYY-MM-DD HH24:MI:SS');

常用日期函数速查表

功能SQLiteMySQL
当前日期时间DATETIME('now')NOW()
提取年份strftime('%Y', date)YEAR(date)
提取月份strftime('%m', date)MONTH(date)
计算日期间隔julianday(d2)-julianday(d1)DATEDIFF(d2, d1)

实战任务

  1. 获取当前日期,并计算 30 天后的日期
  2. 查询 orders 表中过去 7 天内创建的订单
  3. 将日期格式化为"YYYY年MM月DD日"的格式
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 146 篇
0 完成
🔥 0