如何在mysql中进行日期计算_mysql日期计算函数
发布时间 - 2026-01-01 00:00:00 点击率:次MySQL提供DATE_ADD()、DATE_SUB()实现日期增减,DATEDIFF()和TIMESTAMPDIFF()计算日期差,YEAR()等函数提取日期部分,NOW()、DATE_FORMAT()处理当前时间与格式化。
MySQL 提供了丰富且实用的日期计算函数,能轻松完成加减天数、计算间隔、提取日期部分等操作,无需手动转换时间戳或复杂逻辑。
加减日期:DATE_ADD() 和 DATE_SUB()
这是最常用的日期增减方式,支持年、月、日、小时、分钟等多种单位。
- DATE_ADD(date, INTERVAL expr unit):给日期加上指定间隔
- DATE_SUB(date, INTERVAL expr unit):从日期中减去指定间隔
例如:
SELECT DATE_ADD('2025-05-01', INTERVAL 10 DAY); → '2025-05-11'
SELECT DATE_SUB(NOW(), INTERVAL 1 MONTH); → 当前时间往前推一个月
注意:对月份做加减时会自动处理月末边界(如1月31日 + 1 month → 2月28日或29日)。
计算两个日期之间的差值:DATEDIFF() 和 TIMESTAMPDIFF()
DATEDIFF(end_date, start_date) 只返回两个日期之间的**天数差**(忽略时分秒),结果为整数,end 在前、start 在后。
SELECT DATEDIFF('2025-12-25', '2025-01-01'); → 359
TIMESTAMPDIFF(unit, start_date, end_date) 更灵活,可按年、月、日、小时等单位计算精确差值(单位在前,起止顺序与 DATEDIFF 相反)。
SELECT TIMESTAMPDIFF(YEAR, '1990-06-15', NOW()); → 年龄(按年份差)
SELECT TIMESTAMPDIFF(MONTH, '2025-03-10', '2025-05-20'); → 14
提取和构造日期:YEAR()、MONTH()、DAY()、MAKEDATE() 等
用于拆解或组合日期值:
-
YEAR(d
ate)、MONTH(date)、DAY(date)、HOUR(time):提取对应部分 - MAKEDATE(year, dayofyear):用年份和一年中的第几天构造日期(如 MAKEDATE(2025, 60) → '2025-02-29')
- STR_TO_DATE(str, format):将字符串按格式转为日期(如 STR_TO_DATE('05/20/2025', '%m/%d/%Y'))
这些函数常配合 WHERE 或 GROUP BY 使用,比如按年份统计:GROUP BY YEAR(create_time)。
当前时间与日期格式化:NOW()、CURDATE()、DATE_FORMAT()
NOW() 返回当前日期时间,CURDATE() 只返回日期部分,CURTIME() 只返回时间部分。
DATE_FORMAT(date, format) 用于按需格式化输出,常用格式符包括:
- %Y:4位年份,%y:2位年份
- %m:01–12 月,%M:英文全称(January)
- %d:01–31 日,%W:星期全名
例如:SELECT DATE_FORMAT(NOW(), '%Y年%m月%d日 %H:%i');
# mysql
# 格式化输出
# datediff
# select
# date
# format
# 字符串
# 加减
# 按年
# 在前
# 这是
# 一个月
# 几天
# 英文
# 月末
# 最常用
# 年中
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
北京的网站制作公司有哪些,哪个视频网站最好?
Laravel如何实现API速率限制?(Rate Limiting教程)
如何在宝塔面板创建新站点?
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
如何在阿里云ECS服务器部署织梦CMS网站?
如何在Windows服务器上快速搭建网站?
Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
手机软键盘弹出时影响布局的解决方法
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Python数据仓库与ETL构建实战_Airflow调度流程详解
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
如何在阿里云购买域名并搭建网站?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Android 常见的图片加载框架详细介绍
如何在IIS7上新建站点并设置安全权限?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
零基础网站服务器架设实战:轻量应用与域名解析配置指南
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何在IIS中新建站点并配置端口与IP地址?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel如何实现用户密码重置功能?(完整流程代码)
如何为不同团队 ID 动态生成多个“认领值班”按钮
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何在自有机房高效搭建专业网站?
米侠浏览器网页背景异常怎么办 米侠显示修复
如何用PHP快速搭建高效网站?分步指南
html5的keygen标签为什么废弃_替代方案说明【解答】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Laravel怎么在Controller之外的地方验证数据
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
在线教育网站制作平台,山西立德教育官网?
如何在IIS7中新建站点?详细步骤解析
EditPlus 正则表达式 实战(3)
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践
JS去除重复并统计数量的实现方法


ate)、MONTH(date)、DAY(date)、HOUR(time):提取对应部分