如何在mysqli查询中仅比较(Y-m-d)

时间:2014-09-01 10:09:35

标签: php mysql sql mysqli

在我的Mysql数据库中,我有一个名为“time”的字段,其中包含mysql 时间戳(Y-m-d H:i:m)。 现在,我想检查我的表中是否有值,这是从今天开始的。 时间无关紧要。

我的查询到现在为止:

$date = date("Y-m-d");
$select = mysqli_query($sql, "SELECT id FROM table WHERE time => '".$date."' LIMIT 1");

6 个答案:

答案 0 :(得分:3)

您可以使用mysql函数DATE()来仅比较日期。

$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) >= '".$date."' LIMIT 1");

这对我有用。

答案 1 :(得分:2)

最好将日期格式的两个项目转换为比较日期而不是字符串:

$date = date("Y-m-d");
$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) => DATE('".$date."') LIMIT 1");

另外,请考虑使用bind_param,尽管这不是SQL注入的情况。

答案 2 :(得分:1)

MYSQL中的

Date()提取日期或日期时间表达式的日期部分' timestampfield'。

语法:

DATE(timestampfield)

请尝试使用以下查询:

$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) = '$date' LIMIT 1");

答案 3 :(得分:1)

尝试DATE()并且您使用比较运算符时使用>=代替=>

$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) >= '$date' LIMIT 1");

答案 4 :(得分:1)

这会对你有帮助。

$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) >= '".$date."' LIMIT 1");

答案 5 :(得分:0)

你可以使用:

$date = date("Y-m-d");
$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) ='".$date."' LIMIT 1");

不需要小于或大于因为他只在寻找当前日期。