2014-09-01 14 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注入的情況下。