0

所以我用这个在房子周围转了一圈,但没有让它工作......

我有一个 SELECT 查询,其中包含一个 VARCHAR 列 (alloc_mth),其日期为 MMM-YY 格式(例如 Jan-15),我希望能够在我的查询中进行 ORDER BY。为此,我需要转换为可识别的日期格式。我一直按照这里的说明进行操作,但我很难让它发挥作用。

我的 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;

这样做的最终结果是分组和求和工作正常,但日期格式和排序不... 在此处输入图像描述

这应该工作还是我错过了什么?

4

1 回答 1

2

随着表情,

'1.' + `alloc_mth`

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

您想使用 str_to_date 转换为日期。

order by str_to_date(alloc_mth,'%b-%YY')
于 2015-11-10T20:16:27.967 回答