У меня есть записи базы данных, такие как ниже
Name Date(timestamp) Time(timestamp)
Я хочу заказать их по времени DESC. Но это показывает мне неправильный порядок. Теперь он показывает:
Name 19:00 Other 18:30 One more 19:00
Как вы видите, часы не идут от самого раннего к последнему. Я хочу, чтобы это было так:
Other 18:30 Name 19:00 One more 19:00
Что я делаю не так?
SELECT * FROM table WHERE date='".$date."' ORDER BY book_time DESC
Попытайтесь использовать Timestamp () для указания того, что вы ожидаете, что поля, которые вы хотите извлечь данные, как временные метки.
что-то вроде этого:
SELECT timestamp( `timestamp` ) as 'timestamp' FROM randomTable ORDER BY 1 ASC;
было бы здорово, если бы вы могли опубликовать скриншоты вашего вывода, чтобы сделать проблему более ясной.
Вы уверены, что выбираете только дату, которую хотите? Потому что я думаю, что выбрать несколько дат не только один.
Также для чего вам нужно использовать ASC вместо DESC.
Потому что я стараюсь, и это работает для меня. Это мой простой код:
$sql = "SELECT * FROM test WHERE date = '2016-02-10' ORDER BY time ASC"; $res = $DB->query($sql); while($enr = $res->fetch()){ var_dump($enr); }
С помощью этой БД:
И результат:
array (size=8) 'id' => string '4' (length=1) 0 => string '4' (length=1) 'date' => string '2016-02-10' (length=10) 1 => string '2016-02-10' (length=10) 'time' => string '01:00:07' (length=8) 2 => string '01:00:07' (length=8) array (size=8) 'id' => string '3' (length=1) 0 => string '3' (length=1) 'date' => string '2016-02-10' (length=10) 1 => string '2016-02-10' (length=10) 'time' => string '02:03:05' (length=8) 2 => string '02:03:05' (length=8)
Результатом является заказ в заказе ASC, как вы хотите.
Надеюсь, что это поможет тебе.