日期列是 varchar 如何选择从 01-01-2019 到今天的数据

我在获取数据时遇到问题。日期保存在 VARCHAR 中,这意味着它将字符串。我想在我的表中选择从 01-01-2019 到今天的数据。所以我在课堂条件上有问题。


请检查下面我试图获取数据的代码,但它仍然无法正常工作。我正在STR_TO_DATE(holiday_date, '%d-%m-%Y')用于将格式字符串更改为日期列。


<?php 

echo  $edate=date('d-m-Y');

$query="SELECT * FROM holidays where STR_TO_DATE(holiday_date, '%d-%m-%Y')='$edate' ORDER BY STR_TO_DATE(holiday_date, '%d-%m-%Y') asc ";

$stmt=$conn->prepare($query);

$stmt->execute();

$i=1;

    while ($result = $stmt->fetch()) {

    ?>

<tr class="holiday-completed">

    <td><?php echo $i;?></td>

    <td style="display: none;"><?php echo $result['id'];?></td>

    <td><?php echo $result['title'];?></td>

    <td><?php echo $result['holiday_date'];?></td>

    <td>

        <?php $s=$result['holiday_date'];

                $sdate = strtotime($s);

                echo date('l',$sdate);

        ?>

    </td>


波斯汪
浏览 146回答 2
2回答

小怪兽爱吃肉

您可以将以下 SQL 与 BETWEEN 条件一起使用。使用CURRENT_DATE()得到今天的日期。$sql = "SELECT&nbsp;&nbsp; &nbsp; *FROM&nbsp; &nbsp; holidaysWHERE&nbsp; &nbsp; holiday_date BETWEEN STR_TO_DATE('$edate', '%Y-%m-%d') AND CURRENT_DATE()ORDER BY STR_TO_DATE(holiday_date, '%Y-%m-%d') ASC";
打开App,查看更多内容
随时随地看视频慕课网APP