获取mySQL MONTH()使用前导零?

如何指定MySQL的MONTH()函数返回“08”而不是8在这个查询?

我想这种工作按date。 目前正在获取像date的结果

2006-9 2007-1 2007-10 2007-11 

当前查询:

 SELECT COUNT(*), CONCAT(YEAR(`datetime_added`), '-', MONTH(`datetime_added`)) as date FROM `person` WHERE (email = '' OR email IS NULL) GROUP BY date ORDER BY date ASC 

请改用以下内容:

 DATE_FORMAT(`datetime_added`,'%Y-%m') 

说明:

DATE_FORMAT()函数允许您使用下表中描述的说明符来格式化date(从文档中逐字逐句取回)。 所以一个格式string'%Y-%m'意思是:“一年(4位),后面跟着一个破折号( - ),后面跟着一个两位数的月份号码”。

请注意,您可以通过设置lc_time_names系统variables来指定用于日/月名称的语言。 非常有用。 请参阅文档了解更多细节。

 Specifier Description %a Abbreviated weekday name (Sun..Sat) %b Abbreviated month name (Jan..Dec) %c Month, numeric (0..12) %D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …) %d Day of the month, numeric (00..31) %e Day of the month, numeric (0..31) %f Microseconds (000000..999999) %H Hour (00..23) %h Hour (01..12) %I Hour (01..12) %i Minutes, numeric (00..59) %j Day of year (001..366) %k Hour (0..23) %l Hour (1..12) %M Month name (January..December) %m Month, numeric (00..12) %p AM or PM %r Time, 12-hour (hh:mm:ss followed by AM or PM) %S Seconds (00..59) %s Seconds (00..59) %T Time, 24-hour (hh:mm:ss) %U Week (00..53), where Sunday is the first day of the week %u Week (00..53), where Monday is the first day of the week %V Week (01..53), where Sunday is the first day of the week; used with %X %v Week (01..53), where Monday is the first day of the week; used with %x %W Weekday name (Sunday..Saturday) %w Day of the week (0=Sunday..6=Saturday) %X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V %x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v %Y Year, numeric, four digits %y Year, numeric (two digits) %% A literal “%” character %xx, for any “x” not listed above 

你可以使用填充

 SELECT COUNT(*), CONCAT(YEAR(`datetime_added`), '-', LPAD(MONTH(`datetime_added`), 2, '0')) as date FROM `person` WHERE (email = '' OR email IS NULL) GROUP BY date ORDER BY date ASC 
 DATE_FORMAT(`datetime_added`,'%Y - %m') 

MONTH()返回一个整数,所以当然没有前导零。 您将需要将其转换为一个string,留下'0'并采取最后2个字符。