我在尝试按时间戳值排序某些结果时遇到了一个问题。
我希望根据时间戳值从最新的到最旧的显示这些结果。
为了解释这一点,假设有3个结果:

2012-07-11 17:34:57
2012-07-11 17:33:28
2012-07-11 17:33:07

这个结果集是我需要的,但是给出了以下查询
SELECT timestamp
FROM randomTable
ORDER BY timestamp ASC

我得到:
2012-07-11 17:34:57
2012-07-11 17:33:07
2012-07-11 17:33:28

这是因为它是按数值排序的,0728之前。
如果按降序排序
2012-07-11 17:33:07
2012-07-11 17:33:28
2012-07-11 17:34:57

这就是我要找的…但它是相反的。
所以我的问题相当简单,我如何才能按照我描述的升序对这些值进行排序?
编辑:
编辑2:
CREATE TABLE `user_quotations` (
 `id` int(100) NOT NULL AUTO_INCREMENT,
 `quoteNumber` int(100) NOT NULL,
 `lastModified` datetime NOT NULL,
 `userId` int(100) NOT NULL,
 `manufacturer` varchar(250) COLLATE latin1_general_ci NOT NULL,
 `modelNumber` varchar(250) COLLATE latin1_general_ci NOT NULL,
 `productDesc` varchar(1000) COLLATE latin1_general_ci NOT NULL,
 `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`),
 KEY `quoteNumber` (`quoteNumber`,`lastModified`,`userId`,`manufacturer`,`modelNumber`,`timestamp`),
 KEY `productDesc` (`productDesc`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

最佳答案

您的查询:

SELECT timestamp
FROM randomTable
ORDER BY timestamp ASC;

是完美的。但我对你在帖子中的结果表示怀疑。
您发布了:
2012-07-11 17:34:57
2012-07-11 17:33:07
2012-07-11 17:33:28

但您的sqlbox中的结果显示:
2012-07-11 17:34:57
2012-07-15 17:33:07
2012-07-15 17:33:28

这是完全正确的。
这是你发帖时的错别字吗?
如果没有,请尝试以下操作:
SELECT timestamp( `timestamp` ) as 'timestamp'
FROM randomTable
ORDER BY 1 ASC;

关于mysql - MYSQL - 订单时间戳值按从最新到最旧的顺序递增?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11493463/

10-10 03:21