Mysql提取字符串中的时间

发布于 2017-10-14 作者 [重庆SEO]

背景

有个项目,MYSQL数据库某表其中一个url字段的字符串具有一定规律,需要单独提取时间,如下

http://seonoco.com/dir-1/dir-x/dir/2016/1013/3.html
http://seonoco.com/dir-2/dir-y/dir/2017/1014/123.html
....
http://seonoco.com/dir-n/dir-z/dir/2017/1014/id.html

获取其中的时间 20171014

可使用命令

replace(substring_index(substring_index(url,'/',-3),'/',2),'/','')

获取其中的时间并且转换为长度为unix时间戳

可使用命令

substring_index(unix_timestamp(replace(substring_index(substring_index(url,'/',-3),'/',2),'/','')),'.',1)

然后,就可以用来排序或者单独保存

要点备注

通过substring_index截取字符串

通过replace替换时间中间的斜线/

通过unix_timestamp转换时间,类似PHP中的strtotime

参考与扩展阅读

[1] mysql 函数substring_index()