【问题标题】:Check if today meets a date in tablerow at SQL检查今天是否在 SQL 的 tablerow 中遇到日期
【发布时间】:2022-01-08 18:33:37
【问题描述】:

我有一个 20 行的 SQL 表。每行包含一个列“基准”(日期)和一些其他数据。 为了查看网站上的一些信息,只有当今天的日期符合 SQL 表中输入的日期之一时,我才放置了一个'if'。

if ($date_now = $feestdag) {
    echo '<i style="font-weight: bold; color: red;">YESS</i>';
}else{
    echo 'Nope</i>';
}

使用的变量有:

 $date_now = date("Y-m-d");
                $resultalert = mysqli_query($conn,"SELECT datum FROM feestdagen") or die(mysql_error());
                while($feestdagenalert = mysqli_fetch_array($resultalert)) {
                    $feestdag = $feestdagenalert['datum'];
//removed some data
                }

现在,每当今天的日期符合“基准”列的“feestdagen”表中的 20 个条目中的一个时,我都会得到我只想看到的文本。 “基准”列包含“2022-01-02”、“2022-05-22”等条目。

有人知道使这项工作的解决方案吗?我没找到。。 感谢您的帮助!

已编辑:使用 khalil 的解决方案,效果完美

【问题讨论】:

    标签: php sql date


    【解决方案1】:

    SELECT datum FROM feestdagen WHERE datum = CURDATE();

    这将只返回具有当前日期的行。您不需要在 PHP 中执行单独的检查

    【讨论】:

    • 这是我看到的最简单的解决方案。我直接改了,测试了一下(数据库做了一些改动)。它完美地工作。现在只有一个 if($feestdag){ 我可以走了。谢谢!
    • 通过输出变量的值来检查它们是否真的相等。
    • 谢谢,我现在已更改代码以检查值。
    【解决方案2】:

    你可以

    SELECT EXISTS (SELECT *
                          FROM feestdagen
                          WHERE datum = curdate()) AS isfeestdag;
    

    如果今天是假期,您将获得1,否则将获得0。在datum 上有一个索引,除非feestdagen 只包含几行而且这会非常快。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2018-04-05
      • 1970-01-01
      相关资源
      最近更新 更多