SQL:MySQL函数:日期函数(Date Functions)

目录

时间是数据的一种类型

🧰 MySQL 常用时间函数大全

🟦 1. 获取当前时间/日期

🟦 2. 日期运算(加减)

🟦 3. 时间差计算

🟦 4. 格式化日期

🟦 5. 提取时间部分

🟦 6. 时间戳相关 

 函数之间的联系


时间是数据的一种类型

我们用 MySQL 存储时间,其实和存储数字、字符串一样,时间是 一类特殊的数据类型DATE / DATETIME / TIMESTAMP)。

所以我们要处理它,比如:

  • 现在是什么时间?(取值)

  • 某个时间加上 3 天是多少?(运算)

  • 两个时间差多少?(对比)

  • 显示成“年-月-日”?(格式化)

于是我们需要一类“时间函数工具箱”来完成这些任务。


🧰 MySQL 常用时间函数大全

🟦 1. 获取当前时间/日期

函数名中文含义示例返回
NOW()当前日期和时间SELECT NOW();2025-05-08 20:21:00
CURDATE()当前日期(不包括时间)SELECT CURDATE();2025-05-08
CURTIME()当前时间(不包括日期)SELECT CURTIME();20:21:00

适用场景:记录操作时间、筛选“今天”的数据、判断是否超期。

🟦 2. 日期运算(加减)

函数名中文含义示例返回
DATE_ADD(d, INTERVAL n unit)某日期加上时间间隔DATE_ADD('2024-01-01', INTERVAL 3 DAY)2024-01-04
DATE_SUB(d, INTERVAL n unit)某日期减去时间间隔DATE_SUB('2024-01-10', INTERVAL 1 MONTH)2023-12-10
  • unit 可以是 DAY, MONTH, YEAR, HOUR, MINUTE 等。

适用场景:查“过去 7 天”/“近 1 个月”的记录。

DATE_ADD(date, INTERVAL expr unit)

  • 功能:给日期加上指定的时间间隔。

  • 语法:

SELECT DATE_ADD('2025-05-13', INTERVAL 10 DAY);  -- 加10天

DATE_SUB(date, INTERVAL expr unit)

  • 功能:从日期中减去时间间隔。

  • 语法:

SELECT DATE_SUB('2025-05-13', INTERVAL 1 MONTH);  -- 减1个月

🟦 3. 时间差计算

函数名中文含义示例返回
DATEDIFF(d1, d2)d1 - d2 相差多少(整数)DATEDIFF('2025-05-10', '2025-05-01')9
TIMESTAMPDIFF(unit, d1, d2)相差多少单位(更灵活)TIMESTAMPDIFF(MONTH, '2023-01-01', '2025-05-01')28
  • unit 也可以是 SECOND, MINUTE, HOUR, DAY, MONTH, YEAR

适用场景:计算会员时长、距离到期还有几天、是否超时。

DATEDIFF(date1, date2)

  • 功能:计算两个日期之间的天数差值(date1 - date2)。

  • 语法:

SELECT DATEDIFF('2025-05-13', '2025-05-01');  -- 返回 12

TIMESTAMPDIFF(unit, datetime1, datetime2)

  • 功能:计算两个时间之间的差值,可指定单位(SECOND, MINUTE, HOUR, DAY, MONTH, YEAR)。

  • 语法:

SELECT TIMESTAMPDIFF(DAY, '2025-05-01', '2025-05-13'); -- 返回 12

🟦 4. 格式化日期

函数名中文含义示例返回
DATE_FORMAT(d, format)格式化时间DATE_FORMAT(NOW(), '%Y-%m-%d')2025-05-08

适用场景:前端展示、日志格式化、分组查询(比如按月统计)。

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

 常用格式符号

符号含义
%Y四位数年份(2025)
%y两位数年份(25)
%m月份(01–12)
%d日期(01–31)
%H小时(00–23)
%i分钟(00–59)
%s秒(00–59)

🟦 5. 提取时间部分

函数名中文含义示例返回
YEAR(d)提取年份YEAR(NOW())2025
MONTH(d)提取月份MONTH('2024-08-15')8
DAY(d)提取日期DAY('2025-05-08')8
HOUR(d)小时HOUR('20:15:00')20

适用场景:按年月日分组、按小时分布分析。 

YEAR(date)

  • 功能:提取年份。

  • 语法:

SELECT YEAR('2025-05-13');  -- 返回 2025

DAY(date)DAYOFMONTH(date)

  • 功能:提取日期中的“日”部分。

  • 语法:

SELECT DAY('2025-05-13');  -- 返回 13

HOUR(time) / MINUTE(time) / SECOND(time)

  • 功能:提取时间的时、分、秒。

  • 示例:

SELECT HOUR('14:32:10');     -- 返回 14
SELECT MINUTE('14:32:10');   -- 返回 32
SELECT SECOND('14:32:10');   -- 返回 10

🟦 6. 时间戳相关 

时间戳(Timestamp)是指从一个特定的起点时间开始所经过的总秒数,通常用于表示某个时刻。它是计算机中一种常见的时间表示方式,可以精确、方便地进行时间计算和排序。 

  • Unix时间戳(Unix Timestamp):是自1970年1月1日 00:00:00 UTC以来所经过的总秒数。

  • 它是一个整数(精确到秒),例如:

1715601130

表示的是 2025年5月13日 13:32:10(UTC) 左右。 

时间戳的特点

特性描述
精度高精确到秒(也可毫秒、微秒)
易于比较时间戳是整数,直接比较大小即可判断前后
跨平台通用适用于大多数编程语言和数据库
不含时区信息默认以UTC计算,需要转换为本地时间

UNIX_TIMESTAMP()

  • 功能:获取当前时间的 Unix 时间戳(单位:秒)

  • 示例:

SELECT UNIX_TIMESTAMP();
-- 返回:1715601130

FROM_UNIXTIME(timestamp)

  • 功能:将 Unix 时间戳转为可读的日期时间

  • 示例:

SELECT FROM_UNIXTIME(1715601130);
-- 返回:2025-05-13 13:32:10

UNIX_TIMESTAMP(date)

  • 功能:将一个标准时间转为 Unix 时间戳

  • 示例:

SELECT UNIX_TIMESTAMP('2025-05-13 13:32:10');
-- 返回:1715601130

 

 函数之间的联系

可以把它们看成一个工具链:

     [当前时间]         [日期格式化]NOW()   CURDATE() ───> DATE_FORMAT()↓                    ↑DATE_ADD()           TIMESTAMPDIFF()DATE_SUB()           DATEDIFF()↓                    ↑生成目标时间       计算时间差↓                    ↑YEAR(), MONTH(), DAY() ←────提取某部分

示例:

-- 查询本月注册的用户
SELECT * FROM users 
WHERE DATE_FORMAT(created_at, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m');-- 计算某订单创建以来已过天数
SELECT DATEDIFF(NOW(), order_created_at) AS days_elapsed
FROM orders;-- 添加30天后的到期时间
SELECT DATE_ADD(created_at, INTERVAL 30 DAY) AS expiry_date
FROM users;

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

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

相关文章

【MySQL】数据表更新数据

个人主页:Guiat 归属专栏:MySQL 文章目录 1. 数据更新基础1.1 更新操作的重要性1.2 更新语句基本结构1.3 更新操作注意事项 2. 基本更新操作2.1 基本UPDATE语法2.2 使用表达式更新数据2.3 使用LIMIT限制更新行数2.4 NULL值处理 3. 高级更新技术3.1 使用子…

【更新】全国省市县-公开手机基站数据集(2006-2025.3)

手机基站是现代通信网络中的重要组成部分,它们为广泛的通信服务提供基础设施。随着数字化进程的不断推进,手机基站的建设与布局对优化网络质量和提升通信服务水平起着至关重要的作用,本分享数据可帮助分析移动通信网络的发展和优化。本次数据…

蓝桥杯12届国B 纯质数

题目描述 如果一个正整数只有 1 和它本身两个约数,则称为一个质数(又称素数)。 前几个质数是:2,3,5,7,11,13,17,19,23,29,31,37,⋅⋅⋅ 。 如果一个质数的所有十进制数位都是质数,我们称它为纯质数。例如&#xff1…

腾讯多模态定制化视频生成框架:HunyuanCustom

HunyuanCustom 速读 一、引言 HunyuanCustom 是由腾讯团队提出的一款多模态定制化视频生成框架。该框架旨在解决现有视频生成方法在身份一致性(identity consistency)和输入模态有限性方面的不足。通过支持图像、音频、视频和文本等多种条件输入,HunyuanCustom 能…

力扣top100 矩阵置零

开辟数组来标记元素为0的行和列&#xff0c;然后将对应的行和列的元素全部置为0&#xff1b; class Solution { public:void setZeroes(vector<vector<int>>& matrix) {int n matrix.size();int m matrix[0].size();vector<int> l(m),r(n);for(int i …

Python知识框架

一、Python基础语法 变量与数据类型 变量命名规则 基本类型&#xff1a;int, float, str, bool, None 复合类型&#xff1a;list, tuple, dict, set 类型转换与检查&#xff08;type(), isinstance()&#xff09; 运算符 算术运算符&#xff1a;, -, *, /, //, %, ** 比较…

华为OD机试真题——单词接龙(首字母接龙)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)

一、系统介绍 本智能商城系统是基于当今主流技术栈开发的一款多端商城解决方案&#xff0c;主要包括微信小程序前端、SpringBoot 后端服务以及 Vue 管理后台三大部分。系统融合了线上商城的核心功能&#xff0c;支持商品浏览、下单、支付、订单管理等操作&#xff0c;适用于中小…

Python笔记:c++内嵌python,c++主窗口如何传递给脚本中的QDialog,使用的是pybind11

1. 问题描述 用的是python 3.8.20, qt版本使用的是5.15.2, PySide的版本是5.15.2, pybind11的版本为2.13.6 网上说在python脚本中直接用PySide2自带的QWinWidget&#xff0c;如from PySide2.QtWinExtras import QWinWidget&#xff0c;但我用的版本中说没有QWinWidget&#x…

软考软件设计师中级——软件工程笔记

1.软件过程 1.1能力成熟度模型&#xff08;CMM&#xff09; 软件能力成熟度模型&#xff08;CMM&#xff09;将软件过程改进分为以下五个成熟度级别&#xff0c;每个级别都定义了特定的过程特征和目标&#xff1a; 初始级 (Initial)&#xff1a; 软件开发过程杂乱无章&#xf…

C# SQLite基本使用示例

目录 1 基本使用流程 1.1 步骤1&#xff1a;添加SQLite依赖 1.2 ​步骤2&#xff1a;建立连接 1.3 步骤3&#xff1a;执行SQL命令 1.4 步骤4&#xff1a;查询数据 1.5 步骤5&#xff1a;使用事务 2 SQLite基本使用示例 2.1 准备工作 2.2 完整示例 2.3 案例代码解析 …

视频图像压缩领域中 DCT 的 DC 系数和 AC 系数详解

引言 在数字图像与视频压缩领域&#xff0c;离散余弦变换&#xff08;Discrete Cosine Transform, DCT&#xff09;凭借其卓越的能量集中特性&#xff0c;成为JPEG、MPEG等国际标准的核心技术。DCT通过将空域信号映射到频域&#xff0c;分离出DC系数&#xff08;直流分量&…

对抗系统熵增:从被动救火到主动防御的稳定性实战

&#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》&#xff08;基础篇&#xff09;、&#xff08;进阶篇&#xff09;、&#xff08;架构篇&#xff09;清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…

java 中 DTO 和 VO 的核心区别

DTO 和 VO 的核心区别 特性DTO&#xff08;数据传输对象&#xff09;VO&#xff08;视图对象&#xff09;设计目的服务层与外部系统&#xff08;如前端、其他服务&#xff09;之间的数据传输为前端展示层定制数据&#xff0c;通常与 UI 强绑定数据内容可能包含业务逻辑需要的字…

数据结构【二叉树的遍历实现】

&#x1f4d8;考研数据结构基础&#xff1a;二叉树的存储、遍历与队列辅助实现详 在数据结构的学习中&#xff0c;二叉树作为一种结构清晰、应用广泛的树形结构&#xff0c;是考研计算机专业课中重点内容之一。本文将以实际代码为基础&#xff0c;介绍二叉树的存储结构、遍历方…

无人机俯视风光摄影Lr调色预设,手机滤镜PS+Lightroom预设下载!

调色详情 无人机俯视风光摄影 Lr 调色是利用 Adobe Lightroom 软件&#xff0c;对无人机从俯视角度拍摄的风光照片进行后期处理的调色方式。通过调整色彩、对比度、光影等多种参数&#xff0c;能够充分挖掘并强化画面独特视角下的壮美与细节之美&#xff0c;让原本平凡的航拍风…

【springcloud学习(dalston.sr1)】Eureka服务端集群的搭建(含源代码)(二)

该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍&#xff08;含源代码&#xff09;&#xff08;一&#xff09; 这篇文章主要介绍多个eureka服务端的集群环境是如何搭建的。 &#xff08;一&#xff09;eureka的简要说明 Eu…

互联网大厂Java求职面试实战:Spring Boot微服务与数据库优化详解

&#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精通 &#x1f601; 2. 毕业设计专栏&#xff0c;毕业季咱们不慌忙&#xff0c;几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…

事件驱动reactor的原理与实现

fdset 集合&#xff1a;&#xff08;就是说&#xff09; fd_set是一个位图&#xff08;bitmap&#xff09;结构 每个位代表一个文件描述符 0表示不在集合中&#xff0c;1表示在集合中 fd_set结构&#xff08;简化&#xff09;&#xff1a; [0][1][2][3][4][5]...[1023] …

一分钟在Cherry Studio和VSCode集成火山引擎veimagex-mcp

MCP的出现打通了AI模型和外部数据库、网页API等资源&#xff0c;成倍提升工作效率。近期火山引擎团队推出了 MCP Server SDK&#xff1a; veimagex-mcp。本文介绍如何在Cherry Studio 和VSCode平台集成 veimagex-mcp。 什么是MCP MCP&#xff08;Model Context Protocol&…