我想显示从我选择的日期之间的数据。
已经尝试{{1}} 对于CONVERT,我仍然没有得到它,因为我们找不到那个有完整查询的人。
作为我的标题,我的sql字段是日期时间类型,格式为' yyyy-mm-dd hh:mm:ss' 虽然在PHP我有格式dd / mm / yyyy
请仅在PHP代码和SQL查询中以完整模式回答这个问题。
谢谢:)
答案 0 :(得分:1)
您可以在MySQL中YYYY-MM-DD
和YYYY-MM-DD
之间(不包括时间)进行操作,但MySQL无法理解dd/mm/yyyy
,因此您需要将其转换为正确的格式。
当您排除时间时,它会在00:00:00
对其进行解释,因此根据您的具体情况,您可能希望在YYYY-MM-DD
和YYYY-MM-DD 23:59:59
之间进行
注意:PHP也不能正确解释dd/mm/yyyy
。 PHP日期函数理解mm/dd/yyyy
和dd-mm-yyyy
。
答案 1 :(得分:1)
正如评论者所说,你首先必须将你的dd / mm / yyyy格式化日期转换为MySQL喜欢的日期,即YYYY-mm-dd H:i:s
那么,你如何将你的日期转换为MySQL友好日期?做这样的事情:
<?php
$datefrom = '25/06/2015';
$dateend = '20/10/2015';
// create an array with dd, mm and yyyy
$splitFrom = explode('/', $datefrom);
$splitTo = explode('/', $dateend);
// mktime takes hour, minutes, seconds, month, day, year arguments
// create timestamp using mktime and pass it to date and format it to
// mysql friendly timestamp
$mysqlFrom = date('Y-m-d H:i:s', mktime(0, 0, 0, $splitFrom[1], $splitFrom[0], $splitFrom[2]));
$mysqlTo = date('Y-m-d H:i:s', mktime(0, 0, 0, $splitTo[1], $splitTo[0], $splitFrom[2]));
// echo sprintf("From %s and To %s", $mysqlFrom, $mysqlTo);
// this is where you would do your SQL statement and substitute $mysqlFrom and $mysqlTo dates
?>
请注意,这只是一个基本示例,向您展示如何自行解决问题。随着时间的推移,您将不得不进一步优化此类代码。