这是我的疑问:
Select Date_format(`date`, '%b %Y') as 'Categories',
..... as 'a1',....... as 'a2'
FROM table1
GROUP BY Date_format(`date`, '%b %Y')
ORDER BY Date_format(`date`, '%b %Y') ASC
答案是按字母顺序排列的,因为date_format
将日期转换为字符串,我需要按日期排序,但是,分组依据是问题所在。我只需要group by
Date_format('date','%b %Y')
请提供解决方案
答案 0 :(得分:2)
当然是按字母顺序排列的。您按字符串排序。尝试:
ORDER BY MIN(date) ASC
这将按日期值排序。
请注意,在问题的原始版本中,date
周围有单引号。这根本不会排序,因为'date'
是一个带有四个字母单词的字符串。
答案 1 :(得分:0)
这样做:
Select Date_format(`date`,'%b %Y') as 'Categories',
..... as 'a1',....... as 'a2'
FROM table1
GROUP BY Date_format(`date`,'%b %Y')
ORDER BY `date` ASC
答案 2 :(得分:-1)
我用双引号解决了这个问题
Select Date_format(`date`, '%b %Y') as 'Categories',
..... as 'a1',....... as 'a2'
FROM table1
GROUP BY Date_format(`date`, '%b %Y')
ORDER BY "categories" ASC