假设我有
> ID price FromDate ToDate
> -- -------- -------
> 1 100 '2013-12-14 00:00:00' '2013-12-23 00:00:00'
> 2 200 '2013-12-24 00:00:00' '2013-12-31 00:00:00'
对于我的场景,用户从日期'2013-12-15 00:00:00'返回'2013-12-29 00:00:00'搜索
Fromdate是2013-12-15 00:00:00。所以我想得到100的价格 回报是2013-12-29 00:00:00。所以我想得到价格200
不使用运营商之间。怎么做到这一点?
答案 0 :(得分:1)
select price from table1 where FromDate >='2013-12-15' and
ToDate <='2013-12-15'
这将在不使用between
条件的情况下产生预期结果。但两者都会做同样的操作
答案 1 :(得分:0)
我理解正确,您希望选择期间与搜索周期重叠的行,然后BETWEEN
本身与您的问题无关。你可以这样试试
SELECT *
FROM table1
WHERE ('2013-12-15' >= fromdate
AND '2013-12-15' <= todate)
OR ('2013-12-29' >= fromdate
AND '2013-12-29' <= todate)
或
SELECT *
FROM table1
WHERE '2013-12-15' BETWEEN fromdate AND todate
OR '2013-12-29' BETWEEN fromdate AND todate
这是 SQLFiddle 演示
答案 2 :(得分:0)
尝试
select price from table1 where FromDate >='2013-12-15 00:00:00' and ToDate <='2013-12-15 23:59:59'