MySQL中分組年月時,如果月份只有一位數字時,不會自動補充0。這個問題的原因是MySQL中默認將年月作為字符串處理,沒有進行數值補位。
例如,若有以下數據表: id name date 1 Tom 2018-9-30 2 Jerry 2018-10-01 3 Mary 2018-11-05 4 John 2019-01-15 如果想按月份進行分組統計,可以使用以下SQL語句: SELECT COUNT(*), DATE_FORMAT(date, '%Y-%m') AS month FROM table_name GROUP BY month; 輸出結果如下: COUNT(*) month 1 2018-9 1 2018-10 1 2018-11 1 2019-1 可以看到,在2018年9月和2019年1月,月份只有一位數字,沒有補充0。
想要解決這個問題,可以使用LPAD函數進行位數補全。例如:
SELECT COUNT(*), CONCAT(YEAR(date), LPAD(MONTH(date),2,'0')) AS month FROM table_name GROUP BY month; 輸出結果如下: COUNT(*) month 1 201809 1 201810 1 201811 1 201901 這樣就可以實現月份補充0的效果了。
總的來說,要想MySQL中分組年月時月份自動補充0,需要使用LPAD函數進行位數補全。
上一篇css用不了字體
下一篇mysql年月日之間的值