2013-03-25 29 views
0

我的NOW功能不能按我希望的方式工作。我只想簡單地找到過去的日期。NOW功能在我的查詢中不起作用

這是我的查詢。

SELECT * 
FROM `trade_show_inventory` 
     LEFT JOIN `trade_show_reserved` 
       ON `trade_show_inventory`.`id` = `trade_show_reserved`.`productid` 
WHERE `trade_show_inventory`.`quantity` > 0 
     OR `trade_show_reserved`.`datereserved` 
      + INTERVAL 5 day <= '2013-03-31' 
      AND `trade_show_reserved`.`datereserved` > Now() 

編輯:

我改變了我的查詢到這一點,它仍然是行不通的。仍在工作個不停..

$date = date('Y-m-d'); 
    $sql = "SELECT * FROM `trade_show_inventory` LEFT JOIN `trade_show_reserved` 
    ON `trade_show_inventory`.`ID` = `trade_show_reserved`.`ProductID` 
    WHERE (`trade_show_inventory`.`Quantity` > 0) 
    or (`trade_show_reserved`.`DateReserved` + INTERVAL 5 DAY <= '$setupStart' and 
      `trade_show_reserved`.`DateReserved` > '2013-03-25')"; 
+0

請記住,NOW()包含一個時間分量,然後返回「沒有按照我想要的方式工作」的意思。 – ceejayoz 2013-03-25 20:19:33

+0

感謝提供now函數的時間戳上的提示。 – wowzuzz 2013-03-25 20:24:04

+0

'datereserved + INTERVAL 5 day <='2013-03-31''應該做什麼? – 2013-03-25 20:29:04

回答

0

那麼,你的where子句解析,如:

WHERE (`trade_show_inventory`.`Quantity` > 0) or 
     (`trade_show_reserved`.`DateReserved` + INTERVAL 5 DAY <= '2013-03-25' and 
     `trade_show_reserved`.`DateReserved` > NOW() 
    ) 

如果日期是2013年3月25日的前五天,那麼就不能在未來(截至今日至少)。

where子句的周圍放置括號以獲得您想要的邏輯。

+0

沒有這個查詢運氣。看看我的編輯。 – wowzuzz 2013-03-25 20:56:37

+0

@wowzuzz。 。 。然後問題可能是時間stmap和日期之間的比較。將'now()'改爲'date(now())'。 – 2013-03-25 20:58:15

+0

仍然沒有運氣。我的編輯在評論中。 – wowzuzz 2013-03-25 21:04:53

0

NOW()不返回的日期......這是一個完整的時間戳:

mysql> select NOW(); 
+---------------------+ 
| NOW()    | 
+---------------------+ 
| 2013-03-25 17:20:06 | 
+---------------------+ 
1 row in set (0.00 sec) 

嘗試包裹周圍的DATE function

mysql> select DATE(NOW()); 
+-------------+ 
| DATE(NOW()) | 
+-------------+ 
| 2013-03-25 | 
+-------------+ 
1 row in set (0.00 sec) 
0

NOW()返回當前的日期&時間。

您可能會想要使用DATE(),因爲它會返回沒有時間的日期。

0

NOW()函數使用時間戳,我認爲你應該先將它轉換成你需要的日期格式。