MYSQL按日期排序(字符串)

时间:2015-04-29 06:39:41

标签: php mysql

我有一个日期列,其格式如下:28-15

这个格式是第一个数字告诉哪一周,第二个数字告诉哪一年。

我尝试使用str_to_date(datecolumn, '%v-%y')但效果不佳。 它按照正确的顺序对列表进行排序。

我还尝试连接日期列以使字符串显示如下:

01-28-15(首先是一周中的某一天)并使用str_to_date(datecolumn, '%w-%v-%y),但没有运气。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

来自MySql docs

  

您无法使用格式“%X%V”将年周字符串转换为日期   因为一年和一周的组合不能唯一识别   如果一周跨越一个月的边界,则为一年零一个月。转换一个   年 - 星期至日期,您还应指定工作日:

SELECT STR_TO_DATE('200442 Monday', '%X%V %W');    

对于你的情况,你需要做出关于工作日(例如星期一)和世纪(例如2000)的假设,然后你可以通过下一个方式获得日期:

SELECT DATE_ADD(STR_TO_DATE(CONCAT(datecolumn, ' ', 'Monday'), '%V-%X %W'), INTERVAL 2000 YEAR)