将MMM-YY字符串转换为可排序日期格式

时间:2015-11-10 19:57:50

标签: mysql date-formatting sql-date-functions

所以我已经在房子周围走了一段时间而没有让它工作......

我有一个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;

这样做的最终结果是分组和总和工作正常,但日期格式和排序并不... enter image description here

这应该有用还是我遗漏了什么?

1 个答案:

答案 0 :(得分:2)

使用表达式

'1.' + `alloc_mth`

您正在对字符串执行添加,这在mysql中将评估为1。连接字符串的方法是使用concat(str1, str2)。但是,在这种情况下,这应该是不必要的。

您想要使用str_to_date转换为日期。

order by str_to_date(alloc_mth,'%b-%YY')