order时间戳值按从最新到最旧的顺序递增?

yftpprvb  于 2021-06-21  发布在  Mysql
关注(0)|答案(4)|浏览(374)

我遇到了一个问题,当试图秩序的某些结果的时间戳值。
我想这些结果显示从最新的,到最老的基础上的时间戳值。
为了解释这一点,假设有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

这是因为它是按数值和 07 在前面 28 .
如果我按降序排序

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
kx1ctssn

kx1ctssn1#

如果将查询编写为:

select q.`timestamp`
from user_quotations as q
order by q.`timestamp`
limit 30

你应该把它们订好。
如果不是,则时间戳数据有问题。查找前导/尾随空格、奇数字符等。

azpvetkf

azpvetkf2#

检查表的create语句。我希望你的时间戳列是一个字符串。

Show create table tablename;
taor4pac

taor4pac3#

您的查询:

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;
fquxozlt

fquxozlt4#

屏幕截图显示了15日的两个结果和11日的一个结果。可能对订单有点影响。

相关问题