如何从日期区间中选择今天的日期?

3

我有一个关于数据展示的问题。基本上我有这个表:

历史记录表:

| history_date_from | history_date_to |
+-----------------+---------------+
| 2019-10-12      | 2019-10-12    |
| 2019-10-25      | 2019-10-28    |
| 2019-11-18      | 2019-11-22    |
| 2019-11-19      | 2019-11-25    |
| 2019-11-20      | 2019-11-20    |

我遇到的问题是,如果今天已经是2019-11-19,我仍然想显示第三行直到2019-11-22

以下是我当前的查询:

SELECT history_date_from,history_date_to
FROM history_table
WHERE DATE(history_date_from)= CURDATE() BETWEEN DATE(history_date_from) AND DATE(history_date_to)

然而,从我的查询中发现的问题是,它只取决于history_date_fromCURDATE,我试图实现的目标是仍然获取第三行明天直到日期结束,这取决于history_date_to

所以如果今天是2019-11-19,输出应该是:

| history_date_from | history_date_to |
| 2019-11-18      | 2019-11-22    |
| 2019-11-19      | 2019-11-25    |

由于 history_date_to 在日期方面仍未完成,因此需要帮助。

任何帮助都将不胜感激,我认为我的查询只是让事情变得复杂了。


= =CURDATE() ?? - RiggsFolly
@RiggsFolly 抱歉,我的错误。 - Janessa Bautista
鉴于今天是“2019-11-22”(时间去哪了?),期望的结果应该是什么样子?请相应地编辑您的问题。此外,在这种情况下,DATE()是多余的。 - Strawberry
@Strawberry 你好,抱歉让你感到困惑。我已经编辑了我的帖子。感谢你的反馈。 - Janessa Bautista
1个回答

0
您可以使用以下方法,使用BETWEEN

SELECT * 
FROM history_table
WHERE CURDATE() BETWEEN history_date_from AND history_date_to

在dbfiddle.uk上演示

您不需要检查history_date_from的精确匹配。您想知道当前日期是否在特定时间段内。因此,BETWEEN是一个很好的选择。


哦我的天啊!为什么我没想到这个!非常感谢你,对不起我的错误。 - Janessa Bautista

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接