MySQL如何对时间戳字段按日期排序

需求:有一张域名浏览记录表,有字段warning浏览次数,字段updatetime创建时间,现在需要获取,按创建时间的降序,浏览量的降序,获取域名列表。就是说,同一天创建的域名,如果谁的浏览量大,谁就在前面,如下:

 分析:因为本身updatetime是一个时间戳,所以我们可以在查询SELECT时候,新增一个日期字段 datatime,SQL查询如下:

SELECT id,`name`,warning,FROM_UNIXTIME(updatetime)as updatetime, FROM_UNIXTIME(updatetime,'%Y-%m-%d')as datatime FROM `pw_config_domain` ORDER BY datatime DESC,warning DESC; 

最后结果如下,id15和17为同一天,虽然17后创建,但是15的浏览量更大,所以在前:

 ps:如上做法,是通过查询SELECT时候,新增一个字段,所以对于大量的查询的时候,是无法使用索引的,所以。如果业务需求是面对大量查询,还是需要新建一个 updatetime 字段,用来存储创建日期。

posted @ 2020-06-16 11:30  在斑马线上散布  阅读(5737)  评论(0编辑  收藏  举报
夫人不言,言必有中。这是高级臣僚的一种可贵品质,言辞精炼,直抵要害。