【问题标题】:BETWEEN not working MS Access in PHP在 PHP 中无法使用 MS Access 之间
【发布时间】:2018-08-07 05:49:41
【问题描述】:

我有这段代码,它应该获取特定日期之间的所有数据,但它不起作用。该查询有效,只是它一直忽略 BETWEEN 子句,因此它仍然显示所有没有日期的数据。

$statement = Database::prepare("SELECT COUNT(*) AS total_applicants FROM student_applicants a WHERE a.created_at BETWEEN (:start_date AND :end_date) AND a.disabled_at IS NULL AND a.disabled_by IS NULL AND a.deleted_at IS NULL AND a.deleted_by IS NULL");
$statement->bindValue(':start_date', '#5/28/2018 12:00:00 AM#');
$statement->bindValue(':end_date', '#5/28/2018 11:59:59 PM#');
$statement->execute();
$student_applicants = $statement->fetch()['total_applicants'];

【问题讨论】:

    标签: php ms-access


    【解决方案1】:

    您将字符串传递给查询,但使用参数,因此您应该传递时间值。

    如果您使用的是字符串连接(您不应该这样做),那么您的时间格式将是有效的。

    尝试以下方法:

    $statement = Database::prepare("SELECT COUNT(*) AS total_applicants FROM student_applicants a WHERE a.created_at BETWEEN (:start_date AND :end_date) AND a.disabled_at IS NULL AND a.disabled_by IS NULL AND a.deleted_at IS NULL AND a.deleted_by IS NULL");
    $statement->bindValue(':start_date', strtotime('5/28/2018 12:00:00 AM'));
    $statement->bindValue(':end_date', strtotime('5/28/2018 11:59:59 PM'));
    $statement->execute();
    $student_applicants = $statement->fetch()['total_applicants'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多