2013-01-09 45 views
0

我有這樣的查詢,這有助於我只顯示有一個開始日等於今天的記錄..在SQL查詢添加條件有關日期

我有昨天variable..i需要訪問這樣的:

$strSQL = "SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added 
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE forma.data_fillim = '$today' ORDER BY forma.id DESC"; 

我需要修改它是這樣的:

$strSQL = "SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added 
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE forma.data_fillim = '$today' AND forma.data_fillim = '$yesterday' ORDER BY forma.id DESC"; 

感謝

+0

此條件:'forma.data_fillim = '今天$' 和備考.data_fillim ='$ yesterday''我認爲如果今天和昨天都設置正確,就不會返回true。 –

+0

他們都是YMD格式.. –

+0

日期可能是今天和昨天同時?也許你的意思是'forma.data_fillim ='$ today'或者forma.data_fillim ='$ yesterday'' –

回答

0

拍攝,但如何關於改變AND到OR?如果您昨天已經擁有與$ today相同的格式,但只是它是不同的日期,那麼您可以使用OR。或者你可以使用:

forma.data_fillim in ('$today', '$yesterday') 

這也取決於你真的想做什麼。如果你今天昨天和$期待的項目包括$的結果,那麼你可以使用:

(forma.data_fillim >= '$yesterday') and (forma.data_fillim <= '$today') 

如果你期待的結果項目,是指$昨天或$今天的項目,那麼你可以使用上面的代碼片段(使用IN聲明的那個)或使用這個

(forma.data_fillim = '$yesterday') or (forma.data_fillim = '$today') 

您可以使用BETWEEN語法,這對MySQL和MSSQL是正確的。我不知道有關Oracle:

我希望這有助於

0

日期函數取決於您使用的數據庫。如果它是甲骨文你可以使用「日期-1」,它會減去一天,在sqlserver和mysql我不知道這個「快捷方式」,但我敢肯定,他們有一個dateadd()或adddate( ) 或者其他的東西。

它也將有所不同,如果你的數據庫可以解釋字符串'$今天實時的日期,這樣就可以在黑暗中一個日期函數使用它

WHERE forma.data_fillim = '$today' OR forma.data_fillim = '$today' - 1 
+0

昨天應該是昨天的日期,所以我不需要-1我猜... 我用這個,我的意思是它就像我已經設置它,但它沒有工作.. –

+0

我的意思是'今天' - 1但鍵入它錯誤。另外,你可能應該改變AND和OR,因爲日期不能同時是兩個日期,或者檢查你的邏輯,如果這不是你想要完成的 – beder