我要显示的数据有问题。基本上我有这张桌子。
history_table:
| 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)
但是查询中的问题是它仅取决于CURDATE
的{{1}},我要实现的目标是仍然获得明天的第三行,直到明天结束。日期取决于history_date_from
。
因此,如果今天history_date_to
的输出应为:
2019-11-19
因为| history_date_from | history_date_to |
| 2019-11-18 | 2019-11-22 |
| 2019-11-19 | 2019-11-25 |
的日期仍未完成。
任何帮助将不胜感激,我认为我只是在使查询变得复杂。
答案 0 :(得分:0)
您可以使用BETWEEN
使用以下解决方案:
SELECT *
FROM history_table
WHERE CURDATE() BETWEEN history_date_from AND history_date_to
您无需检查history_date_from
上的确切匹配项。您想知道当前日期是否在特定时间段内。因此,BETWEEN
是一个不错的选择。