2016-10-22 76 views
1

我有一個varchar字段名稱meeting_date,其中存儲日期如mm/dd/yyyy,如 12/25/2016現在我試圖從db中獲取結果,其中月份而今年的比賽從如下形式請求meeting_date,但我沒有得到任何結果從日期時間格式的字段中獲取記錄

$y =$_REQUEST['y']; 
$m =$_REQUEST['m']; 
$date = "$y/$m"; 

$table = mysql_query("SELECT * FROM records WHERE meeting = 'Yes' AND (meeting_date LIKE '%".$date."%') ORDER BY id DESC"); 
$rows = mysql_fetch_assoc($table); 

感謝您的時間,並幫助

+0

使用'DATE_FORMAT'這樣'DATE_FORMAT (meeting_date,'%Y /%m')= $ date' –

+0

@ProfessorZoom不工作,因爲它的字符串沒有以datetime格式存儲 –

+0

你試過了嗎?我做了,它爲我工作 –

回答

0
meeting_date LIKE '%".$m."/%"."%/".$y."%'. 

你有年份和月份之間的一天。

如果您可以將varchar字段更改爲日期並在查詢後格式化網站的外觀,那將會好得多。然後將查詢看起來像:

MONTH(meeting_date) = $m AND YEAR(meeting_date) = $y 
+0

哇真棒謝謝非常感謝您的時間和幫助 –

+0

將接受它,但等待時間約8分鐘 –

+0

第二個解決方案,我會試一試。 –

1

假設您的輸入格式爲DD/MM/YYYY的字符串,你可以使用STR_TO_DATE和DATE_FORMAT

mysql_query("SELECT * 
      FROM records 
      WHERE meeting = 'Yes' 
      AND date_format(str_to_date(meeting_date, '%d/%m/%Y'), '%Y/%m') 
         = date_format(str_to_date ($date, '%d/%m/%Y') , '%Y/%m') 
      ORDER BY id DESC"); 
+0

啊這也是一個不錯的解決方案。欣賞它 –

+0

那麼@johrampong ..希望這可能是有用的 – scaisEdge

+0

這確實是有幫助的隊友 –

相關問題