BEVER语句在php pdo中工作不正常
我在php数据对象中使用'BETWEEN'语句来显示在两个特定日期之间发表的文章,但是'date from'不起作用,尽管'date to'工作正常,如果我只设置'date from',则不显示任何内容,但是如果我只设置'date to',则会显示正确的文章,如果我同时设置了'date from'和'date to',则会显示正确的文章,仍然显示正确的帖子,问题只是当我只选择“日期开始”时,这是我的代码BEVER语句在php pdo中工作不正常,php,mysql,date,pdo,between,Php,Mysql,Date,Pdo,Between,我在php数据对象中使用'BETWEEN'语句来显示在两个特定日期之间发表的文章,但是'date from'不起作用,尽管'date to'工作正常,如果我只设置'date from',则不显示任何内容,但是如果我只设置'date to',则会显示正确的文章,如果我同时设置了'date from'和'date to',则会显示正确的文章,仍然显示正确的帖子,问题只是当我只选择“日期开始”时,这是我的代码 $dateFrom = $_POST['dateFrom']; $dateTo = $_PO
$dateFrom = $_POST['dateFrom'];
$dateTo = $_POST['dateTo'];
$sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '$dateTo' ";
$data = $connect->query($sql);
echo "<center><table class = 'main_table'>";
foreach($data as $row){
echo "<tr><td><span id = 'time_of_post'>".$row['time']."</span><br/><br/>".$row['posts']."<br/><br/><span id = 'comment_button'>comments ↡</span></td></tr>";
}
echo "</table></center>";
以下代码起作用:
if(empty($_POST['dateTo']) && !empty($_POST['dateFrom'])){
$sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '2080-12-31' ";
}
else{
$sql = "SELECT * FROM Main_Posts_table WHERE DATE(time) BETWEEN '$dateFrom' AND '$dateTo' ";
}
如果未设置dateto,则将其设置为null,该值小于datefrom,因此我创建了一个单独的If-else块,以检查是否只设置了datefrom,然后我将dateto设置为一个非常高的值,如果任何人都能想到更短的代码,请发布时间列的数据类型是什么?类型是datetime@hassan请显示示例数据并输出您可能获得的重复数据这是mysql而不是sql server,我将其标记为mysql