mysql如何在不使用运算符的情况下使用条件?

时间:2013-12-15 07:05:56

标签: mysql datetime

假设我有

 > 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

不使用运营商之间。怎么做到这一点?

3 个答案:

答案 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'