无法比较日期

时间:2017-01-12 05:07:21

标签: mysql sql hibernate datetime criteria

我想从数据库中获取今天的记录。表中的列具有数据类型Datetime。因此,每当我尝试将记录与今天的日期进行比较时,与日期+时间进行实际比较,以便无法检索数据。如何仅比较日期?

4 个答案:

答案 0 :(得分:2)

像这样进行日期比较:

where date(your_column) = date(now())

此方法从日期列和当前时间戳(由NOW()表示)中提取时间戳的日期部分。

答案 1 :(得分:0)

将DateTime列投射到日期,如下面的代码

Select * from You Date Where Cast(date,DateTimeColumn)=Cast(Date,GetDate())

答案 2 :(得分:0)

你有两个相同的解决方案。

  1. 从您的日期列中提取日期并与今天的日期进行比较[GurV建议的答案] 当表中包含大量行时,它会对性能产生影响。必须为每条记录执行从datetime类型列中提取日期的功能。
  2. 使用范围函数,例如BETWEEN子句。所以,查询应该看起来像
  3. your_column between CURDATE() and CURDATE()+ INTERVAL 1 DAY

答案 3 :(得分:0)

要根据当前日期和时间检索记录,您需要php date()功能。在这里,您将获得关于按当前日期插入和显示数据的简要信息。

以下是您可以遵循的流程:插入数据

if(isset($_GET['send'])){
    $name = $_GET['name']."<br>";
    $phone = $_GET['phone']."<br>";

    date_default_timezone_set("Asia/Calcutta");//SET TIMEZONE

    $current_time = date('h:i:sa');//STORE CURRENT TIME IN VAR
    $current_date = date('Y-m-d');//STORE CURRENT DATE IN VAR

    $insert = "INSERT INTO datewise (name, phone, date, time) VALUES ('$name','$phone','$current_date','$current_time')"; 

    if($link->query($insert) === TRUE){
        echo "inserted";
    }
    else
    {
        echo $insert."<br>".$link->error;
    }

}

根据表

中的当前日期显示数据
<table>
        <tr>
            <td>id</td>
            <td>name</td>
            <td>phone</td>
            <td>date</td>
            <td>Time</td>
        </tr>
    <?php
        $presentDate =  date('Y-m-d'); //THIS VAR STORES CURRENT DATE AND COMPARES IT WITH DATABASE
        $disp = "SELECT * FROM datewise WHERE date='$presentDate'";

        $disp_res = $link->query($disp);

        while($row = $disp_res->fetch_assoc()){
    ?>
        <tr>
            <td><?php echo $row['id']; ?></td>
            <td><?php echo $row['name']; ?></td>
            <td><?php echo $row['phone']; ?></td>
            <td><?php echo $row['date']; ?></td>
            <td><?php echo $row['time']; ?></td>
        </tr>
    <?php

        }
    ?>
    </table>