【问题标题】:MYSQL SELECT statement for selecting date period用于选择日期期间的 MYSQL SELECT 语句
【发布时间】:2016-07-29 20:07:39
【问题描述】:

我正在尝试使用语句从 MYSQL 数据库中检索数据,但由于某些原因,该语句未按预期工作。可能是什么原因?这些值是来自表格 t1 和 t2 的日期输入。日期值采用 2005-04-06 的形式。会不会是日期表格问题? ...尽管数据库中有数据,但我收到“没有要显示的联系人”。是语法错误吗?

<?php
session_start();

$servername = "localhost";
$username = "root";
$password = "ub435!";
$dbname = "funtest";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$_SESSION['post-data'] = $_POST;

$t1 = $_SESSION['post-data']['t1'];
$t2 = $_SESSION['post-data']['t2'];
$time1 = mysqli_real_escape_string($conn, $t1);
$time2 = mysqli_real_escape_string($conn, $t2); 


$sql =  "SELECT DISTINCT msisdn FROM customer WHERE DATE_FORMAT(time_paid, '%Y-%c-%e') BETWEEN ADDDATE('$time1',INTERVAL 0 HOUR) AND ADDDATE('$time2',INTERVAL '23:59' HOUR_MINUTE)";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
  echo "Number of Recipients: ";  echo "$result->num_rows <br> <br>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
 $mobilenumber = $row['msisdn'];
      echo "Mobile : " . "$mobilenumber" . "<br>";

    }
} else {
    echo "No Contacts to Display";
}

$conn->close(); 
?>

【问题讨论】:

  • 您需要通用的 MySQL+SQL Server 解决方案吗?为什么它带有 SQL Server 标记?
  • 如果您的问题没有解决,可能是日期格式的原因,请检查您的数据库表中的日期格式并与$time1和$time2进行比较
  • echo 你的$sql 准备好查询后,尝试直接在phpmyadmin中执行,你会更好地了解这个问题。或者只是在此处粘贴查询

标签: php mysql date


【解决方案1】:

你错过了$

$sql =  "SELECT DISTINCT msisdn FROM customer where time_paid  BETWEEN '$time1' AND '$time2')";

【讨论】:

  • 避免使用单引号'$time'
  • @jitendrapurohit 在这个查询中必须使用单引号。
猜你喜欢
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
  • 2013-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多