2016-10-22 112 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

这确实是有帮助的队友 –

相关问题