如何根据日期选择 2 年时间范围 - MySQL?

Posted

技术标签:

【中文标题】如何根据日期选择 2 年时间范围 - MySQL?【英文标题】:How to select 2-year time range based on a date - MySQL? 【发布时间】:2021-11-21 05:55:08 【问题描述】:

我知道如何根据日期选择几天:

WHERE 
    date_column > adddate('2021-09-29', -100)
AND 
    date_column < '2021-09-29'

上面的查询选择date_column2021-09-292021-09-29之前100天之间的数据。

我的问题是我可以为year 使用相同的模式/语法吗?怎么做?是不是类似于adddate('2021-09-29', -2y)

我知道我可以执行 date_column BETWEEN '2021-09-29' - INTERVAL 2 YEAR AND '2021-09-29' 之类的操作,但我不想使用这种语法,我可以使用类似于上面示例中的语法的东西吗,因为我的 Python 代码中需要它?谢谢。

【问题讨论】:

试试这个ADDDATE('2021-09-29', INTERVAL -2 YEAR)吧,没必要用date BETWEEN @groovy_guy 不是INTERVAL 2 YEAR 而是INTERVAL -2 YEAR @ErgestBasha 是的 :) 谢谢 【参考方案1】:

您可以使用DATE_ADD('2021-09-29', INTERVAL -2 YEAR)。 See this.

你可以这样做:

MAKEDATE(YEAR('2021-09-29') + 2, DAYOFYEAR('2021-09-29'))

您“自己”执行的任何日期算术都需要针对闰年边缘情况进行仔细测试。不用担心那些边缘情况是使用内置日期算术运算的最大和最好的理由。以免您的项目出现在 https://worsethanfailure.com/ 上,这是您不希望发生的。

(它们确实有奇怪的语法,是吗?)

【讨论】:

以上是关于如何根据日期选择 2 年时间范围 - MySQL?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel php 中使用 ajax 根据日期范围从 mysql 数据库中检索数据?

mysql选择范围内的日期时间对象

我在表单中使用了日期范围选择器如何禁用从 MySQL 数据库中获取的特定日期范围

MySQL:选择两个日期范围内的所有数据

MySQL中根据日期进行范围查询

MySQL中根据日期进行范围查询