按日期排序&时间按降序排列?

时间:2012-03-01 06:53:42

标签: mysql sql

所有          我想显示最后5个特定id的输入数据。 我的SQL查询是,

SELECT id, name, form_id, DATE(updated_at) as date
  FROM wp_frm_items
  WHERE user_id = 11 && form_id=9
  ORDER BY updated_at DESC

updated_at是DATETIME

它显示最后5个条目按日期排序而不是按时间排序。在同一天,它按字母顺序排序。

假设我在同一日期有3个条目与差异时间

让我们说

Ajay 1/3/2012 1:15
John 1/3/2012 1:00
Bony 1/3/2012 1:10

查询上述查询后

我得到的是

Ajay 1/3/2012 1:15
Bony 1/3/2012 1:10
John 1/3/2012 1:00

按日期排序,然后按字母顺序排序

我想要的是这个..

John 1/3/2012 1:00
Bony 1/3/2012 1:10
Ajay 1/3/2012 1:15

按日期和时间排序......

7 个答案:

答案 0 :(得分:64)

如果你想要最后5行,按升序排序,你需要一个子查询:

SELECT *
FROM
    ( SELECT id, name, form_id, DATE(updated_at) AS updated_date, updated_at
      FROM wp_frm_items
      WHERE user_id = 11 
        AND form_id=9
      ORDER BY updated_at DESC
      LIMIT 5
    ) AS tmp
ORDER BY updated_at

在第10次阅读这个问题之后,这可能是(只是可能)你想要的。按日期递减递减,然后按时间(在同一日期)按升序排序:

SELECT id, name, form_id, DATE(updated_at) AS updated_date
FROM wp_frm_items
WHERE user_id = 11 
  AND form_id=9
ORDER BY DATE(updated_at) DESC
       , updated_at ASC

答案 1 :(得分:19)

放置UNIX_TIMESTAMP就可以了。

SELECT id, NAME, form_id, UNIX_TIMESTAMP(updated_at) AS DATE
    FROM wp_frm_items
    WHERE user_id = 11 && form_id=9
    ORDER BY DATE DESC

答案 2 :(得分:3)

SELECT id, name, form_id, DATE(updated_at) as date
FROM wp_frm_items
WHERE user_id = 11 && form_id=9
ORDER BY date ASC

“DESC”代表降序,但您需要升序(“ASC”)。

答案 3 :(得分:2)

SELECT * FROM (
               SELECT id, name, form_id, DATE(updated_at) as date
               FROM wp_frm_items
               WHERE user_id = 11 && form_id=9
               ORDER BY updated_at DESC
             ) AS TEMP
    ORDER BY DATE(updated_at) DESC, name DESC

试一试。

答案 4 :(得分:1)

如果您的意思是希望先按日期排序,再按名称排序

SELECT id, name, form_id, DATE(updated_at) as date
  FROM wp_frm_items
  WHERE user_id = 11 && form_id=9
  ORDER BY updated_at DESC,name ASC

这将首先按日期对记录进行排序,然后按名称

对记录进行排序

答案 5 :(得分:0)

以下查询对我有用。 数据库Tabel t_sonde_results具有域d_date(数据类型DATE)和d_time(数据类型TIME) 目的是查询按日期和时间排序的t_sonde_results中的最后一个条目

选择*从 (从*中选择* (通过d_time asc在d_user_name ='kenis'和d_smartbox_id = 6顺序的情况下,选择* FROM t_sonde_results 按d_date和d_time限制1)作为tmp1排序

答案 6 :(得分:-1)

我使用了一个更简单的解决方案,部分在这里找到:
How to sort details with Date and time in sql server ?
我使用此查询来获取结果:

SELECT TOP (5) * FROM My_Table_Name WHERE id=WhateverValueINeed ORDER BY DateTimeColumnName DESC

这更直接,对我有用。

注意:Date的列有" datetime"输入