如何在MySQL中计算两个日期的间隔天数

目录

  • [1. DATEDIFF函数](#1. DATEDIFF函数)
  • [2. TIMESTAMPDIFF函数](#2. TIMESTAMPDIFF函数)
  • [3. PERIOD_DIFF函数](#3. PERIOD_DIFF函数)
  • [4. 函数对比](#4. 函数对比)

在MySQL 5.7中,计算两个日期之间的间隔天数是一项常见的任务。

1. DATEDIFF函数

DATEDIFF函数可以直接计算两个日期之间的天数差异。

sql 复制代码
-- 计算2024年1月1日和2024年1月10日之间的天数差异
SELECT DATEDIFF('2024-01-10', '2024-01-01') AS days_difference; # 结果 9,表示两个日期之间相差9天。

2. TIMESTAMPDIFF函数

TIMESTAMPDIFF函数允许你指定日期和时间单位来计算差异,这里我们使用DAY作为单位。

sql 复制代码
-- 计算2024年1月1日和2024年1月10日之间的天数差异
SELECT TIMESTAMPDIFF(DAY, '2024-01-01', '2024-01-10') AS days_difference; # 结果 9

3. PERIOD_DIFF函数

PERIOD_DIFF函数专门用于计算两个日期之间的月份差异。

sql 复制代码
-- 计算2024年1月和2024年12月之间的月份差异
SELECT PERIOD_DIFF(202412, 202401) AS months_difference; # 结果 -11

表示从2024年1月到2024年12月相差11个月(注意结果是负数,因为第二个日期在第一个日期之后)。

4. 函数对比

下面是一个表格,对比了DATEDIFFTIMESTAMPDIFFPERIOD_DIFF这三个函数的区别:

函数 用途 单位/参数 返回值类型
DATEDIFF 计算两个日期之间的天数差异 天数
TIMESTAMPDIFF 计算两个日期/时间之间的差异,可以指定单位(如天、月、年) 指定单位
PERIOD_DIFF 计算两个日期之间的月份差异 月份
相关推荐
草莓熊Lotso15 分钟前
【Redis 初阶】 从分布式演进背景到环境搭建全解析
数据库·人工智能·redis·分布式·缓存
倔强的石头_18 分钟前
优化器为什么敢把你写的 LEFT JOIN 悄悄改掉?-国产化金仓 KES 优化器设计思路拆解
数据库
学习-学习21 分钟前
PostgreSQL 19 Beta 值得测吗?并行 Autovacuum、REPACK 到 WAIT FOR LSN 看生产影响
数据库·postgresql
何中应1 小时前
Postgres 搭建主从集群
数据库·postgresql·集群·开发工具
数字新视界1 小时前
档案库房环境安全监控解决方案
大数据·运维·数据库·物联网·环境监控系统
嘘神秘用10 小时前
布:AI 驱动的 Redis 客户端,更快、更直观
数据库·人工智能·redis
东北小狐狸-Hellxz11 小时前
Redis 哨兵搭建+ACL权限控制
数据库·redis
研究员子楚13 小时前
GEO行业发展标准体系白皮书V2.0-第09卷 · 适配篇:硅基主权伦理宪章与行业适配宣言
数据库·人工智能·geo
CoderMeijun13 小时前
一条SQL查询语句在MySQL中是如何执行的
mysql·sql执行流程·连接器·mysql架构·索引下推·执行器
l1340620823514 小时前
鸿蒙实战:RDB 数据库设计与 DatabaseService
数据库·华为·harmonyos·鸿蒙系统