如何根据日期选择 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_column
在2021-09-29
和2021-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 数据库中检索数据?