2014-09-01 13 views
2

在我的Mysql数据库中,我有一个名为“time”的字段,其中包含mysql 时间戳(Y-m-d H:i:m)。 现在,我想检查我的表中是否有值,从今天开始。 时间没关系。如何在mysqli查询中仅比较(Y-m-d)

我查询到现在为止:

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

提示:用'\'包装时间' – diEcho 2014-09-01 10:10:53

+2

没有'=>'比较运算符。 ITYM'> ='。 – Barmar 2014-09-01 10:14:05

回答

2

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

语法:

DATE(timestampfield) 

因此,尝试用下面的查询:

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

尝试DATE()而且使用的是比较操作中不正确使用>=代替=>

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

你可以使用mysql函数DATE()来comp仅限日期。

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

这是为我工作。

0

你可以使用:

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

无需小于或geater不是因为他正在寻找的只是当前日期。

1

这会帮助你。

$select = mysqli_query($sql, "SELECT id FROM table WHERE DATE(time) >= '".$date."' LIMIT 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注入的情况下。