MYSQL - 排序时间戳值按顺序升序,从最新到最旧?

标签 mysql timestamp sql-order-by

我在尝试按时间戳值对某些结果进行排序时遇到了问题。

我希望根据时间戳值从最新到最旧显示这些结果。

为了解释这一点,假设有 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

这是我要找的……但它是相反的。

所以我的问题很简单,如何按照我描述的升序对这些值进行排序?

编辑:

The problem

EDIT2:

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 - 排序时间戳值按顺序升序,从最新到最旧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11493463/

相关文章:

python - MySQL 连接器的 python 代码中的语法错误是什么?

php - 从 Wordpress 数据库中检索重音符号而不是逗号

php - 从 RSS 导入时如何避免重复结果

php - 将csv文件加载到mysql后时间戳为空

java - 处理 Cassandra 时间戳

MySQL - COUNT、GROUP BY、ORDER BY 并获取最新日期时间

Mysql 使用搜索字符串排序

REPLACE INTO上的Mysql Innodb死锁问题

php - 按时间和日期过滤

c# - OrderBy 和 OrderByDescending 是否稳定?