MySQL对日期计算

前言

在MySQL中,日期计算是非常常见的操作。其中,日期减法操作可以用来计算两个日期之间的差值,也可以用来获取某个日期之前或之后的几天、几月或几年的日期。本文将介绍如何使用MySQL实现日期减法操作。

使用场景

一 日期作减法操作

Mysql中两个日期相减,返回它们之间的天数差:

SELECT DATEDIFF('2023-10-10', '2022-10-10') AS diff_days;

在这里插入图片描述
这里我们使用了MySQL内置的DATEDIFF函数,它会返回两个日期之间的天数差。我们可以将其存储在一个变量中,方便后续计算:

SET @days_diff := DATEDIFF('2023-10-10', '2022-10-10');

此时,可以使用变量@days_diff来执行后续运算。

二 获取前一天或后一天的日期

如果想要获取给定日期的前一天或后一天的日期,可以使用DATE_ADD函数或DATE_SUB函数。例如:

SELECT DATE_ADD('2023-10-10', INTERVAL 1 DAY) AS next_day;

在这里插入图片描述
这里的INTERVAL 1 DAY表示要添加1天。同样,如果要获取前一天的日期,可以使用DATE_SUB函数:

SELECT DATE_SUB('2023-10-10', INTERVAL 1 DAY) AS previous_day;

在这里插入图片描述

在这里,INTERVAL 1 DAY表示要减去1天。

三 获取前一个月或后一个月的日期

如果想要获取某个日期的前一个月或后一个月的日期,可以使用DATE_ADD函数或DATE_SUB函数。例如:

SELECT DATE_ADD('2023-10-10', INTERVAL 1 MONTH) AS next_month;

在这里插入图片描述

这里的INTERVAL 1 MONTH表示要添加1个月。同样,如果要获取前一个月的日期,可以使用DATE_SUB函数:

SELECT DATE_SUB('2023-10-10', INTERVAL 1 MONTH) AS previous_month;

在这里插入图片描述
在这里,INTERVAL 1 MONTH表示要减去1个月。

四 获取前一年或后一年的日期

如果想要获取某个日期的前一年或后一年的日期,可以使用DATE_ADD函数或DATE_SUB函数。例如:

SELECT DATE_ADD('2023-10-10', INTERVAL 1 YEAR) AS next_year;

在这里插入图片描述
这里的INTERVAL 1 YEAR表示要添加1年。同样,如果要获取前一年的日期,可以使用DATE_SUB函数:

SELECT DATE_SUB('2023-10-10', INTERVAL 1 YEAR) AS previous_year;

在这里,INTERVAL 1 YEAR表示要减去1年。

五 查询一个月内的申请记录

# 推荐使用,能使用索引
SELECT
	*
FROM
	air_cust_apply a 
WHERE
	 a.create_time > DATE_SUB( NOW(), INTERVAL 1 MONTH );

# 或
# 不推荐使用,没有使用索引
SELECT
	*
FROM
	air_cust_apply a 
WHERE
	 DATE_ADD( a.create_time, INTERVAL 1 MONTH ) > NOW();

总结

本文介绍了MySQL中日期减法操作的使用方法,包括计算两个日期之间的天数差,获取前一天或后一天的日期,获取前一个月或后一个月的日期,获取前一年或后一年的日期,以及查询一个月内的申请记录的实际应用。这些操作都可以使用MySQL内置的DATE_ADD函数或DATE_SUB函数来实现。在实际使用中,只需要根据需求选择合适的函数和参数即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL中,可以使用DATE_ADD()函数进行滚动日期计算。该函数可以在给定的日期上增加或减少指定的时间间隔。 例如,如果要在当前日期上增加1天,可以使用以下语句: SELECT DATE_ADD(CURRENT_DATE(), INTERVAL 1 DAY); 如果要在当前日期上减少2个小时,可以使用以下语句: SELECT DATE_ADD(CURRENT_DATE(), INTERVAL -2 HOUR); 如果要计算两个日期之间的间隔,可以使用DATEDIFF()函数。该函数返回两个日期之间的天数差。 例如,如果要计算2022-01-01和2022-01-05之间的天数差,可以使用以下语句: SELECT DATEDIFF('2022-01-05', '2022-01-01'); 这将返回4,表示两个日期之间相差4天。 总之,MySQL提供了DATE_ADD()函数和DATEDIFF()函数来进行滚动日期计算日期间隔的计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [mysql中对于时间的处理,时间的滚动,求时间间隔,切换时区等等](https://blog.csdn.net/weixin_33831673/article/details/94098245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [mysql日期计算](https://blog.csdn.net/MARS116048/article/details/126960250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值