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

SQL如何对时间戳字段按日期排序 Mysql 第1张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

 分析:因为本身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的浏览量更大,所以在前:

SQL如何对时间戳字段按日期排序 Mysql 第2张

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

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄