Mysql关于时间字符串转日期及排序

 

一,问题描述:

        通过时间字符串排序,发现:"3日"比"31日"靠前

Mysql关于时间字符串转日期及排序_第1张图片

 

二、原因分析

     因为comment_time字段是字符型,字符串排序从左到右, "日" 比 "1" 大,所以就是上图那种排序

 

三、解决办法

    把时间字符串格式化即可,使用函数:STR_TO_DATE(str, format)

     STR_TO_DATE( `comment_time`,'%Y年%m月%d日')

Mysql关于时间字符串转日期及排序_第2张图片


格式化时间字符串并按时间排序:
SELECT * FROM qx_monitoring_comment WHERE attraction_id = 1 ORDER BY STR_TO_DATE( `comment_time`,'%Y年%m月%d日') DESC;

Mysql关于时间字符串转日期及排序_第3张图片

你可能感兴趣的:(Mysql)