按时间戳排序的php mysql不正确

时间:2016-02-10 13:12:28

标签: php mysql timestamp

我有数据库记录,如下面的

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

2 个答案:

答案 0 :(得分:0)

尝试使用Timestamp()指定您希望从中提取数据的字段作为时间戳。

类似的东西:

SELECT timestamp( `timestamp` ) as 'timestamp'
FROM randomTable
ORDER BY 1 ASC;

如果您可以发布输出的屏幕截图以使问题更清晰,那就太棒了。

答案 1 :(得分:0)

您确定只选择您想要的日期吗?因为我认为选择多个日期不仅仅是一个。

此外,您需要使用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);
}

使用此DB:

Database on MySQL

结果是:

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订单中的订单

希望对你有所帮助。