mysql按字符串型日期排序如何做

zc1989621machao 2016-04-12 06:14:52
UrlId Title CreateTime
1 xxxx 4/9/2016 9:16:06 AM
2 xxxx 4/12/2016 8:16:06 AM

如上面的,CreateTime 类型我用的是 char(30) 这个类型。
但是排序的话 SELECT * FROM `goods` ORDER BY createtime desc limit 0,15
这样排序 竟然会第二条记录排在第一条记录前面,而且貌似 4月9号以后的记录都会排在4月九号以后,不过九号之前的记录会正确排序,我想应该是排序的时候 看到 9 比12 当中的1要大。遇到这种情况我该怎么办呢,我想着把字段类型改成 datetime 类型,但是这样改动太大,一改的时候系统之前的值会在改动的时候发成紊乱。能不能在不改的时候直接用呢
我参考之前的一篇帖子 http://bbs.csdn.net/topics/390446676 发现那人的方法不管用。
...全文
1880 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起混吧 2016-04-13
  • 打赏
  • 举报
回复
select * from goods order by STR_TO_DATE(CreateTime,'%m/%d/%Y %h:%i:%s %p') desc;
xuzuning 2016-04-12
  • 打赏
  • 举报
回复
STR_TO_DATE( `CreateTime`,'%d/%m %Y %s:%i:%h %p') 你的 CreateTime 中的日期是按 日/月 年 秒:分:时 上下午 这样的格式排列的吗?
zc1989621machao 2016-04-12
  • 打赏
  • 举报
回复
引用 楼主 zc1989621machao 的回复:
UrlId Title CreateTime 1 xxxx 4/9/2016 9:16:06 AM 2 xxxx 4/12/2016 8:16:06 AM 如上面的,CreateTime 类型我用的是 char(30) 这个类型。 但是排序的话 SELECT * FROM `goods` ORDER BY createtime desc limit 0,15 这样排序 竟然会第二条记录排在第一条记录前面,而且貌似 4月9号以后的记录都会排在4月九号以后,不过九号之前的记录会正确排序,我想应该是排序的时候 看到 9 比12 当中的1要大。遇到这种情况我该怎么办呢,我想着把字段类型改成 datetime 类型,但是这样改动太大,一改的时候系统之前的值会在改动的时候发成紊乱。能不能在不改的时候直接用呢 我参考之前的一篇帖子 http://bbs.csdn.net/topics/390446676 发现那人的方法不管用。
我写的代码是:select * from goods order by STR_TO_DATE( `CreateTime`,'%d/%m %Y %s:%i:%h %p') desc 但是发现加了没有作用
zc1989621machao 2016-04-12
  • 打赏
  • 举报
回复
引用 2 楼 xuzuning 的回复:
为什么不下载个手册翻翻呢?这种常识性的东西,查查手册就知道了
我不是科班,已经四五年没写代码了,弄了好久了,都没解决
xuzuning 2016-04-12
  • 打赏
  • 举报
回复
为什么不下载个手册翻翻呢?这种常识性的东西,查查手册就知道了
xuzuning 2016-04-12
  • 打赏
  • 举报
回复
select STR_TO_DATE('4/12/2016 8:16:06 AM','%m/%s/%Y %h:%i:%s %p') 2016-04-00 08:16:06 select STR_TO_DATE('4/12/2016 8:16:06 PM','%m/%s/%Y %h:%i:%s %p') 2016-04-00 20:16:06 select STR_TO_DATE('12/4 2016 6:16:8 AM','%d/%m %Y %s:%i:%h %p') 2016-04-12 08:16:06 可以看到,STR_TO_DATE 函数可以把任意格式的时间表达式,转换成 mysql 的默认时间格式 就看你是怎么描述转换规则的了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧