BEVER语句在php pdo中工作不正常

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

我在php数据对象中使用'BETWEEN'语句来显示在两个特定日期之间发表的文章,但是'date from'不起作用,尽管'date to'工作正常,如果我只设置'date from',则不显示任何内容,但是如果我只设置'date to',则会显示正确的文章,如果我同时设置了'date from'和'date to',则会显示正确的文章,仍然显示正确的帖子,问题只是当我只选择“日期开始”时,这是我的代码

$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 &#8609;</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