如何在 MySQL 中显示特定于日期的数据


How to display date specific data in MySQL?

嗨,

我想通过MySQL查询显示日期特定的数据,我正在使用下面的查询;

SELECT SUM(qa_effort) 
FROM tbl_uat 
WHERE product='DAS' 
    AND uat_start_date >= '$date1'

上面的查询不仅显示>uat_start_date的数据,还显示<的数据,可能的原因是什么?

PHP代码:

<?php       
$date1 = $_POST["date3"];    
$date2 = $_POST["date4"];
if (is_null($date2) || $date2 === '' ){
$cmsc= mysql_query("SELECT SUM(qa_effort) 
FROM tbl_uat 
WHERE product='DAS' 
   AND uat_start_date >= '$date1'");
while ($cresult = mysql_fetch_array ($cmsc))
$arrda2[0] = $cresult[0];
echo $arrda2[0];
}
?>

在tbl_uat列中,uat_start_date类型为日期。

谢谢问候

  1. 如何防止 PHP 中的 SQL 注入?
  2. mysql_*已弃用。请改用mysqli_*PDO

在预准备语句示例中,它将如下所示:

$date1 = $_POST["date3"];    
$date2 = $_POST["date4"];
if (is_null($date2) || $date2 === '' ) {
    $q = $mysqli->prepare('SELECT SUM(qa_effort) 
        FROM tbl_uat 
        WHERE product="DAS"
        AND uat_start_date >= ?
    ');
    $q->bind_param('s', $date1);
    $q->execute();
    $q->bind_result($sum);
    while ($q->fetch()) {
       echo $sum;
    }
}

mysqli文档

当然,您应该验证$date1日期格式是否正确,例如Y-m-d