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

标签 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.' + `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/

相关文章:

mysql - 我需要一些 Rails 迁移帮助来添加/删除foreign_key

MySQL CAST 作为日期

mysql - 我如何修复我的(复杂的)查询,以便它为我提供正确的表?

mysql - 如何使用mysql获取去年最后三个月的数据?

sql - 在 Postgres 中将日期转换为一年中的某一天

mysql - Yii 查询优化 MySQL

swift - 在 Unix 时间戳上使用 DateFormatter

java - 将带有时区的日期字符串转换为仅工作日和日期

mysql - 如何更改MySQL表内的日期格式?

delphi - 更改 Sysem.Variants.VarToWideStr 的区域设置格式