2016-10-19 5 views
1

У меня есть несколько datetime «с в моей базе данных MySQL, как это:PHP, MySQL; GROUP BY не работает DateTime

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)