将str_to_date转换为YYYY-MM并在SQL中保留2位数的月份格式

时间:2017-11-21 19:55:33

标签: mysql sql date

我希望我的约会在一个月内出现2位数,但我似乎只能得到1.我已经在互联网上寻找解决方案,并发现一些似乎应该有效,但是不断获得1064错误代码。我刚刚开始学习SQL几天,所以我可能遇到了正确的答案,只是不知道在查询中的位置。

这就是我在mySQL工作台中连接数据库的方式:

要连接到MySQL服务器,请将客户端程序指向:

主持人:applepie.cx67wtelpwox.us-east-1.rds.amazonaws.com

用户名:public

port:3306

这是我的疑问:

SELECT 
    concat(year, '-', month) AS theDate,
    dest,
    sum(1) AS numFlights,
    sum(cancelled) AS numCancelled,
    ((sum(Cancelled) / sum(1))) AS perCancelled
FROM flights WHERE year = 2013
    AND dest = 'SFO'
GROUP BY month
ORDER BY perCancelled desc

这就是我得到的:

2013-7  SFO 15401   862 0.0560
2013-6  SFO 14768   503 0.0341
2013-8  SFO 15478   322 0.0208

这就是我想要的:

2013-07 SFO 15401   862 0.0560
2013-06 SFO 14768   503 0.0341
2013-08 SFO 15478   322 0.0208

1 个答案:

答案 0 :(得分:2)

您可以使用lpad为月构建2个字符长度的字符串

SELECT 
    concat(year, '-', lpad(month,  2,'0')) AS theDate,
    dest,
    sum(1) AS numFlights,
    sum(cancelled) AS numCancelled,
    ((sum(Cancelled) / sum(1))) AS perCancelled
FROM flights WHERE year = 2013
    AND dest = 'SFO'
GROUP BY month
ORDER BY perCancelled desc