2013-01-13 60 views
-3

我對PHP和MySQL相當陌生。我遇到了一個問題,我會盡力解釋我的問題。查詢多個日期變量

TODAY = 2013-01-13 18:37:00 
PRODUCT = P000001 

TABEL:ASSEMBLY

----------------------------------------------------------------- 
    ∣ PRODUCT ∣ COMPONENT ∣  BEINFORCE  ∣  WILLEXPIRE  ∣ 
    ----------------------------------------------------------------- 
    ∣ P000001 ∣ C000001 ∣ 2013-01-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣ 
    ----------------------------------------------------------------- 
    ∣ P000001 ∣ C000002 ∣ 2013-02-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣ 
    ----------------------------------------------------------------- 
    ∣ P000001 ∣ C000003 ∣ 2013-01-01 18:37:00 ∣ 2013-01-10 18:37:00 ∣ 
    ----------------------------------------------------------------- 

輸出必須是:從工作臺組件

----------------------------------------------------------------- 
    ∣ PRODUCT ∣ COMPONENT ∣  BEINFORCE  ∣  WILLEXPIRE  ∣ 
    ----------------------------------------------------------------- 
    ∣ P000001 ∣ C000001 ∣ 2013-01-01 18:37:00 ∣ 0000-00-00 00:00:00 ∣ 
    ----------------------------------------------------------------- 

查詢必須檢查產品,BEINFORCE和WILLEXPIRE和輸出表。

+0

你的意思是你想得到第一列? COMPONENT –

+1

目前尚不清楚你想要做什麼。您是否在尋找與BEINFORCE的確切時間戳比賽?來自同一天的時間戳?指定的24小時內的時間戳?或BEINFORCE和WILLEXPIRE之間的時間戳? – PleaseStand

+0

這裏你的業務邏輯是什麼? –

回答

0

如果我理解正確的話,包括你的問題下面的評論,然後你想要的ASSEMBLY那些行這

  1. 有超過BEINFORCE小於或等於TODAY
  2. 有一個WILLEXPIRE它是一個零,我主動表示在PRODUCT您所要求的未來
  3. 比賽日期

您可以使用以下查詢來實現此目的,假設用戶變量代表您的參數。您當然也可以使用準備好的查詢佔位符。

SELECT * 
FROM ASSEMBLY 
WHERE BEINFORCE <= @TODAY 
    AND WILLEXPIRE = '0000-00-00 00:00:00' 
    AND PRODUCT = @PRODUCT 
+0

WILLEXPIRE需要檢查兩次,如果「0000-00-00 00:00:00」以及日期插入,如果將來再顯示它,如果過去不顯示它。 「0000-00-00 00:00:00」表示無法插入WILLEXIRE! –

+0

我認爲這個問題是我想做 - WILLEXPIRE ='0000-00-00 00:00:00',也是WILLEXPIRE>今天 –

+0

@ user1682101:'OR',而不是'AND',因爲你想獲得行匹配*你的兩個條件之一。將其括在括號內。 – MvG