为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
波斯汪 2021-10-15 16:32:31
我在获取数据时遇到问题。日期保存在 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>
查看完整描述

2 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您可以将以下 SQL 与 BETWEEN 条件一起使用。使用CURRENT_DATE()得到今天的日期。


$sql = "SELECT 

    *

FROM

    holidays

WHERE

    holiday_date BETWEEN STR_TO_DATE('$edate', '%Y-%m-%d') AND CURRENT_DATE()

ORDER BY STR_TO_DATE(holiday_date, '%Y-%m-%d') ASC";


查看完整回答
反对 回复 2021-10-15
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信