gpt4 book ai didi

MySQL查询日期范围

转载 作者:行者123 更新时间:2023-11-29 05:34:41 29 4
gpt4 key购买 nike

我需要一个 SQL 查询来检索包含在选定时间段内的数据,时间段是用户从日历中选择的字符串。

例如,如果用户选择时间段 '2012-07-01''2012-07-04' 并且我有以下:

ID ||  start_date  ||  end_date
1 || 2012-07-02 || 2012-07-04
2 || 2012-07-06 || 2012-08-05
3 || 2012-07-01 || 2012-09-01
4 || 2012-06-25 || 2012-09-01

如果像这样写一个 sql 查询:

SELECT ID, start_date, end_date
FROM TABLE
WHERE start_date BETWEEN '2012-07-01' AND '2012-07-04'

返回从“2012-07-01”到“2012-07-04”的所有行

ID ||  start_date  ||  end_date
1 || 2012-07-02 || 2012-07-04
3 || 2012-07-01 || 2012-09-01

但是,我想要这段时间里包含的所有数据,所以结果必须是:

ID ||  start_date  ||  end_date
1 || 2012-07-02 || 2012-07-04
3 || 2012-07-01 || 2012-09-01
4 || 2012-06-25 || 2012-09-01

我也希望 ID 为 4 的行出现在结果中,因为用户选择的时间段在开始日期和结束日期之间。

最佳答案

SELECT ID, start_date, end_date
FROM TABLE
WHERE start_date BETWEEN '2012-07-01' AND '2012-07-04'

您只是按开始日期选择,您可以通过以下方式询问:

(start_date between begin, end) OR
(end_date between begin, end) OR
(start_date <= begin AND end_date >= end)

所以:

(start_date between begin, end ) : 你有在范围内开始的所有事件

(end_date between begin, end) : 你有所有在范围内完成的事件

(start_date <= begin AND end_date >= end) : 您拥有范围内所有事件的事件

关于MySQL查询日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11795049/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com