PHP Mysql 使用 PDO 进行日期时间搜索

PHP Mysql datetime search with PDO

在 DateTime 列上努力 return 结果。我只是空了。 一直在尝试不同的方式,但最终得到相同的结果。 我认为出现 space ?!?

时就会出现问题

代码:

$myStart=$_POST['jQueryDateStart'];
$myEnd=$_POST['jQueryDateEnd']; 
$myStart = $myStart." 00:00:00";
$myEnd = $myEnd." 23:59:59";

if ($myStart>$myEnd ){
    echo "<script>";
    echo "  alert('Start Date must less than End Date');";
    echo "  window.location.href='location.php';";
    echo "</script>";
    exit();
}
$mytable = $_SESSION["SESS_myuserid"];

$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN ':SearchS' AND ':SearchE'");
$stmt->bindParam(':SearchS', $myStart, PDO::PARAM_STR);
$stmt->bindParam(':SearchE', $myEnd, PDO::PARAM_STR);   

$stmt->execute();

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo $result[0]['PLong'];
echo $myStart;
echo $myEnd; 
echo $mytable;
exit();

开始日期数据:2016-05-22 00:00:00 结束日期数据:2016-05-27 23:59:59

列中的时间示例:2016-05-26 13:29:24

我试过在变量周围使用 Single ' ',如语句代码中所示,但没有,结果相同。

Wrap off quotes 来自占位符,否则它将您的查询创建为 WHERE PTime BETWEEN ''2016-05-22 00:00:00'' AND ''2016-05-27 23:59:59''

只需使用

$stmt = $db->prepare("SELECT * FROM ".$mytable." WHERE PTime BETWEEN :SearchS AND :SearchE");