我想选择一个月中的所有记录。例如:在日期数据库中,记录为日期
在此,我只想选择2014年1月8日至2014年8月14日。我写查询为
$result = mysql_query("SELECT t1.qty, t2.lastname, t2.firstname, t2.date, t3.name, t2.reservation_id, t2.payable FROM prodinventory AS t1
INNER JOIN reservation AS t2
ON t1.confirmation=t2.confirmation
INNER JOIN products AS t3
ON t1.room=t3.id
WHERE t2.date BETWEEN '$start' AND date'$end'
GROUP BY t2.confirmation") or die(mysql_error());
我得到的结果是日期
它包括9月的日期。请帮忙。
像这样使用str_to_date函数:
SELECT t1.qty,
t2.lastname,
t2.firstname,
t2.date,
t3.name,
t2.reservation_id,
t2.payable
FROM prodinventory AS t1
INNER JOIN reservation AS t2
ON t1.confirmation = t2.confirmation
INNER JOIN products AS t3
ON t1.room = t3.id
WHERE str_to_date(t2.date, '%d/%m/%Y') BETWEEN
str_to_date('$start', '%d/%m/%Y') AND
str_to_date('$end', '%d/%m/%Y')
我也摆脱了您的GROUP BY子句。您只能将GROUP BY子句与聚合函数一起使用。您没有使用任何聚合函数。
当然,理想的做法是修改表以实际保存日期,而不是字符串。这样,您可以查询而不必进行转换。您还可以直接为日期列建立索引,而不必创建基于函数的索引。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句