【发布时间】:2009-08-28 15:21:35
【问题描述】:
表结构-
int PrimaryKey
DateTime Date
int Price
我想做的是传入开始和结束日期,并获取范围
发件人:
小于或等于开始的最大日期除非没有这样的日期,在这种情况下,范围的开始应该是可用的最小日期。
收件人:
结束日期。
到目前为止我的查询是:
SELECT Date, Price
FROM table1
WHERE Date <= $end
AND Date >=
(
SELECT Date
FROM table1
WHERE Date <= $start
ORDER BY Date DESC
LIMIT 1
)
子查询获取小于或等于起始值的最大日期,然后将其用作主查询范围的下限。有什么关于在其中添加“UNLESS”子句的建议吗?
例如,给定一个带有日期的表格:
Jan 1, 2009
Feb 1, 2009
Mar 1, 2009
Apr 1, 2009
我希望使用$start='Feb 18, 2009' 和$end='Apr 30, 2009' 进行查询以返回2 月1 日、3 月1 日、4 月1 日的三行(2009 年2 月1 日是小于或等于$start 的最大日期)。
但如果我提供 $start='Dec 1, 2009' 和 $end='Apr 30, 2009' 我希望返回所有四行(没有小于或等于 $start 的日期,因此范围从最低日期开始)
【问题讨论】: