2013-12-15 28 views
-1

假設我有mysql如何在運營商之間不使用條件?

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

對於我的情況下,用戶搜索FROM日期 '2013年12月15日00:00:00' returndate '2013年12月29日00:00:00'

FROM日期爲2013-12-15 00:00:00。所以我想要得到的價格100 返回是2013-12-29 00:00:00。所以我想要得到的價格200

運營商之間沒有使用。如何實現這一目標?

+1

爲什麼不使用之間? – Bohemian

回答

1
select price from table1 where FromDate >='2013-12-15' and 
ToDate <='2013-12-15' 

這將產生您的預期結果,而不使用between條件。但兩者都會執行相同的操作

+0

我不工作 – user3102758

+0

用戶將如何搜索?如果他們只會提供fromdate,則可以使用上面的查詢。我可以知道輸入的方式嗎? – Haji

+0

輸入:Fromdate是2013-12-15 00:00:00。返回2013-12-29 00:00:00。我試圖使用> =和<=來檢索價格,但它不會到來。如果我提到> =,那麼所有的記錄即將到來。 – user3102758

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演示

0

嘗試

select price from table1 where FromDate >='2013-12-15 00:00:00' and ToDate <='2013-12-15 23:59:59'