按日期和时间按降序排序?

Aja*_*tel 36 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
Run Code Online (Sandbox Code Playgroud)

updated_at 是DATETIME

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

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

让我们说吧

Ajay 1/3/2012 1:15
John 1/3/2012 1:00
Bony 1/3/2012 1:10
Run Code Online (Sandbox Code Playgroud)

查询完上述查询后

我得到的是

Ajay 1/3/2012 1:15
Bony 1/3/2012 1:10
John 1/3/2012 1:00
Run Code Online (Sandbox Code Playgroud)

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

我想要的是这个......

John 1/3/2012 1:00
Bony 1/3/2012 1:10
Ajay 1/3/2012 1:15
Run Code Online (Sandbox Code Playgroud)

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

ype*_*eᵀᴹ 67

如果您想要最后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
Run Code Online (Sandbox Code Playgroud)

在第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
Run Code Online (Sandbox Code Playgroud)


tar*_*riq 20

放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
Run Code Online (Sandbox Code Playgroud)


Mār*_*ovs 8

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
Run Code Online (Sandbox Code Playgroud)

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