2016-10-19 40 views
1

工作,我有我的MySQL數據庫的一些datetime的是這樣的:PHP,MySQL; GROUP BY不會對日期時間

2016-11-15 10:00:00 
2016-11-16 10:00:00 
2016-11-17 10:00:00 
2016-11-17 12:00:00 
2016-11-17 19:30:00 
2016-11-20 10:00:00 
2016-12-15 10:00:00 
2017-11-15 10:22:00 

我要輸出,但每天只有一次。這意味着:

2016-11-15 10:00:00 
2016-11-16 10:00:00 
2016-11-17 10:00:00 
2016-11-20 10:00:00 
2016-12-15 10:00:00 

這是我的代碼:

<?php 
$stmt = $pdo->prepare('SELECT date_db FROM my_table GROUP BY DATE(date_db) ORDER BY date_db'); 
$stmt->execute(); 

$results = $stmt->fetchAll(); 
foreach($results as $row) { 

    echo "<option value=\"".$row['date_db']."\">".$row['date_db']."</option>"; 
} 
?> 

但是,這並不真正發揮作用。有些日子簡直就是失蹤。爲什麼?我究竟做錯了什麼?

+0

只需在查詢中使用DISTINCT? – Naruto

+0

@Naruto你的意思是:'$ stmt = $ pdo-> prepare('SELECT DISTINCT date_db FROM my_table ORDER BY date_db');'?沒有用。 – David

+0

@RiggsFolly爲什麼? – David

回答

0

這是現在的工作代碼:

<?php 
$stmt = $pdo->prepare('SELECT date_db FROM my_table GROUP BY DATE(date_db) ORDER BY date_db'); 
$stmt->execute(array(':date' => $date)); 

$results = $stmt->fetchAll(); 
foreach($results as $row) { 

echo "<option value=\"".$row['date_db']."\">".$row['date_db']."</option>"; 
} 
?> 

我不知道爲什麼它的工作了,但它是。

1

嘗試此查詢:

SELECT MIN(date_db) FROM my_table GROUP BY DATE(date_db) ORDER BY DATE(date_db)