2015-04-29 117 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)