下面的代码是我目前所拥有的,如果有人知道 BETWEEN 的工作原理并能指出正确的方向,我将不胜感激。
<form action="index.php" method="GET">
Starting from:<br>
<input type="date" name="startDate" ><br><br>
Upto:<br>
<input type="date" name="uptoDate" ><br><br>
<input type="submit">
</form>
<?php
// I removed the connection details for obvious reasons
// It does connect and display the data with no problems
$startingFrom = $_GET[startDate];
$upto = $_GET[uptoDate];
// I tried this but it does not seem to work
// $query = "SELECT * FROM table BETWEEN $startingFrom AND $upto";
$query = "SELECT * FROM table";
$result = mysql_query($query);
echo "<table><th>Name</th><th>Registered Date</th>";
while($row = mysql_fetch_array($result)){
echo "<tr><td>" . $row['name'] . "</td><td>" . $row['registered'] . "</td></tr>";
}
echo "</table>";
mysql_close();
?>
最佳答案
如果您要在两个给定日期之间返回结果,请使用此代码
SELECT *
FROM table
WHERE date BETWEEN CAST('2015-04-03' AS DATE) AND CAST('2015-05-28' AS
DATE);
对于包含日期的 BETWEEN,您需要使用 CAST() 将值转换为适当的数据类型,例如 DATE 或 DATETIME。如果您将 BETWEEN 与 DATETIME 一起使用,请将您的值转换为 DATETIME:
SELECT *
FROM table
WHERE date BETWEEN CAST('2015-04-03 08:40:09' AS DATETIME) AND CAST('2015-05-28 02:50:09' AS DATETIME);
作为旁注,使用 MySQL 改进的扩展 (mysqli) 并且您忘记关闭输入字段,这不是一个好的代码。
关于php - 如何使用表单将 SQL 查询更改为仅显示特定范围内的注册日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44938641/