2015-04-29 89 views
1

我有一个格式如下的日期列:28-15按日期排序的MYSQL(字符串)

这个格式是第一个数字告诉哪个星期,第二个数字告诉哪一个星期。

我试过使用str_to_date(datecolumn, '%v-%y')没有好的结果。 它命令列表但它没有在正确的顺序。

我也试过concatting的datecolumn使字符串显示如下:

01-28-15(首先是星期几),并使用str_to_date(datecolumn, '%w-%v-%y),没有运气。

我在做什么错?

回答

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)