我有一个SQL DB,其中我根据日期和时间存储信息。
SQL存储格式为2013-04-25 15:13:37
列名为date_time且为Var
我的搜索PHP如下:
<form action="control_lbsresult.php" method="get">
<input type="hidden" name="member_msisdn" value="<?=$query?>"
/>
<input type="text" name="query" />
<br />
<label for="dates"></label>
<input type="date" name="dates" id="dates" />
Start Date<br />
<label for="datee"></label>
<input type="date" name="datee" id="datee" />
End Date<br />
<input type="submit" value="Search" />
</form>
这是它在URL中提供的字符串
/control_lbsresult.php?member_msisdn=&query=0827910119&dates=2013-04-01&datee=2013-04-
25
这是我在我的结果页面中的内容:
<?php
$host="localhost"; // Host name
$username="***"; // Mysql username
$password="****"; // Mysql password
$db_name="****"; // Database name
$tbl_name="lbs_"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// get value of id that sent from address bar
$id=$_GET['id'];
// Retrieve data from database
$sql="SELECT * FROM $tbl_name WHERE date between '" . $dates . "' AND '" . $datee . "'
msisdn='$msisdn'";
它不是在日期之间进行过滤,而是为我提供MSISDN的所有结果
我认为问题出在WHERE字符串中,请协助
发布于 2013-04-25 15:45:16
对日期使用BETWEEN
可能会得到意想不到的结果。试着这样做:
SELECT *
FROM $tbl_name
WHERE date >= '" . $dates . "'
AND date <= '" . $datee . "'
发布于 2013-04-25 15:59:02
使用BETWEEN
或>= & <=
,两者都应该可以工作。
您需要确保字段类型为DATE
。
另外,我建议使用mysqli。
以下是为您提供的示例代码:
$stmt = $db->prepare("SELECT * FROM tbl_name WHERE date_field between ? AND ?");
$stmt->bind_param("ss",$start_date,$end_date);
$stmt->execute();
发布于 2013-04-25 15:48:19
ALTER TABLE tbl MODIFY COLUMN
date datetime;
使用BETWEEN
.的
https://stackoverflow.com/questions/16219190
复制