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

时间:2013-11-07 06:44:48

标签: php 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类型为date。

感谢 此致

1 个答案:

答案 0 :(得分:0)

  1. How can I prevent SQL injection in PHP?
  2. mysql_*已弃用。请改用mysqli_*PDO
  3. 在准备好的语句示例中,它将如下所示:

    $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 documentation

    当然,您应确认$date1是否为适当格式的日期,例如Y-m-d