所以我用这个在房子里转了一圈,但没有成功......
我有一个 SELECT 查询,其中包含一个 VARCHAR 列 (alloc_mth),其日期采用 MMM-YY 格式(例如 Jan-15),我希望能够在查询中对其进行 ORDER BY。为此,我需要转换为可识别的日期格式。我一直按照说明 here 进行操作但我正在努力让它发挥作用。
我的 SELECT 查询如下...
SELECT `alloc_mth`, SUM(`line_cleared`), SUM(`line_count`), (SUM(`line_cleared`)/SUM(`line_count`))*100 as `Fill`
FROM `allocHist`
GROUP BY 1
ORDER BY CAST('1.' + `alloc_mth` AS DATETIME) ASC;
最终结果是分组和求和工作正常,但日期格式和排序却不行......
这应该有效还是我错过了什么?
最佳答案
使用表达式,
'1.' + `alloc_mth`
您正在对字符串执行加法,在 mysql 中,该字符串的计算结果为 1
。连接字符串的方法是使用concat(str1, str2)
。但是,在这种情况下,这应该是不必要的。
您想使用 str_to_date 转换为日期。
order by str_to_date(alloc_mth,'%b-%YY')
关于mysql - 将 MMM-YY 字符串转换为可排序日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33638461/