从非日期时间格式的字段中获取记录

时间:2016-10-22 18:52:43

标签: php mysql sql

我有一个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);

感谢您的时间和帮助

2 个答案:

答案 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");

答案 1 :(得分:0)

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

你有一个月和一年之间的日子。

如果您可以将varchar字段更改为日期并格式化查询后在网站上的显示方式,那会好得多。然后您的查询将如下所示:

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