2013-10-05 47 views
0

您好,我有一個數據庫,其中有一個字段date它內部有以下格式:2013-09-03例如。我正在做一個mysql查詢,顯示這個數據庫的結果,但我想這樣修改它,所以它將只顯示數據不超過31天從今天或一個月的結果,今天必須我的日期今天從服務器獲取,這裏是查詢至今:如果Mysql查詢結果不大於當前日期的一個月

(!$result = mysqli_query($con, 
"SELECT id, title, date, date_until, content FROM dashboard WHERE city = 'VC' AND type = 'class' AND status = '1'")) 

例如,如果今天是第一個月份該查詢應顯示的結果是具有日期不超過1二月更大。

任何幫助將不勝感激。由於

回答

0

嘗試

(!$result = mysqli_query($con,"SELECT id, title, date, date_until, content FROM dashboard WHERE city = 'VC' AND type = 'class' AND status = '1' AND DATEDIFF(date, NOW()) <= 31"));

然而,這將是更好的預先計算的截止日期,以避免做DATEDIFF所有行MYSQL ,所以類似於:

$cutoff = date("Y-m-d", strtotime("+31 day"); (!$result = mysqli_query($con,"SELECT id, title, date, date_until, content FROM dashboard WHERE city = 'VC' AND type = 'class' AND status = '1' AND date <= '$cutoff'"));

+0

產生一個正確的結果集,但在'date'列中使用函數會導致使用此搜索的任何索引。 –

+0

我嘗試了兩種解決方案,但結果超過31天或一個月仍然進入查詢 –

+0

約翰,你能回聲$ cutoff,以確保它是預期的(從現在起31天的日期),並張貼表架構所以我們可以檢查日期欄的格式嗎? – KGolding

1

嘗試使用日期計算

WHERE ... 
    AND date <= TODAY() + INTERVAL 1 MONTH 
+0

它給了我一個錯誤,今天我改變了它,但仍然結果不受日期的限制 –

+0

請告訴我們您的表定義。你的'日期'欄有'DATETIME'日期類型嗎? –

+0

該型號僅限於: –

相關問題