如何在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 计算两个日期之间的月份差异 月份
相关推荐
村口蹲点的阿三7 分钟前
Spark SQL 中对 Map 类型的操作函数
javascript·数据库·hive·sql·spark
苹果醋342 分钟前
golang 编程规范 - Effective Go 中文
java·运维·spring boot·mysql·nginx
暮湫1 小时前
MySQL(1)概述
数据库·mysql
fajianchen1 小时前
记一次线上SQL死锁事故:如何避免死锁?
数据库·sql
chengpei1471 小时前
实现一个自己的spring-boot-starter,基于SQL生成HTTP接口
java·数据库·spring boot·sql·http
叫我:松哥2 小时前
基于Python django的音乐用户偏好分析及可视化系统设计与实现
人工智能·后端·python·mysql·数据分析·django
中东大鹅3 小时前
MongoDB的索引与聚合
数据库·hadoop·分布式·mongodb
天天向上杰4 小时前
简识Redis 持久化相关的 “Everysec“ 策略
数据库·redis·缓存
Leaf吧4 小时前
springboot 配置多数据源以及动态切换数据源
java·数据库·spring boot·后端
狮歌~资深攻城狮5 小时前
TiDB出现后,大数据技术的未来方向
数据库·数据仓库·分布式·数据分析·tidb