×î½üÓÉÓÚÒª×ö±¨±í£¬ÔÚÒ»ÕűíÖÐÓÐÒ»¸ö×Ö¶ÎΪdateÀàÐÍ£¬ÏÖÔÚÏëÒªÔÚÒ»¶Îʱ¼äÄÚ£¨±ÈÈçÒ»Ä꣩Äܹ»°´ÕÕʱ¼ä¶Î·Ö×é²éѯ¼Ç¼×ܺͣ¬±ÈÈçÎÒÒªÄܹ»²éѯ2007Äêµ½2009Äê¼ä°´Ô·ݷÖ×é¼Ç¼ÌõÊýͳ¼Æ£¬ÍøÉÏÌáʾÓà group by to_char(date_column, 'yyy-mm'),¹¹ÔìÈçÏÂsqlÓï¾ä£º
select count(*), s.create_date as date_split
from sample s
where s.create_date between '2007-01' and '2009-12'
group by to_char(date_split, 'yyy-mm');
µ«ÊÇ£¬ÎÒ²»Ö»ÊÇÒªÄܰ´Ô·ÝÀ´·Ö×飬»¹ÒªÇóÄܹ»°´Öܺͼ¾¶ÈÀ´·Ö×飬ÕâÖÖ²éѯÓï¾äÔõô¹¹ÔìÄØ£¬ÍøÉÏËÆºõûÓÐÕâ·½Ãæ×ÊÁÏ£¬Íû´óϺ½ÌÎÒ£¬Ð¡µÜ²»Ê¤¸Ð¼¤£¡
¼¾¶ÈµÄÓиö±¿°ì·¨£º
SQL> select to_char(b,'YYYY-MM') from table1;
TO_CHAR(B,'YYY
--------------
2009-09
2009-09
2009-09
2008-11
2008-11
2008-09
2009-05
2009-12
2009-12
ÒÑÑ¡Ôñ9ÐС£
SQL> select to_char(b,'YYYY'),sum(decode(to_char(b,'MM'),'01',1,'02',1,'03',1,0)) as one,
2 sum(decode(to_char(b,'MM'),'04',1,'05',1,'06',1,0)) as two,
3 sum(decode(to_char(b,'MM'),'07',1,'08',1,'09',1,0)) as three,
4 sum(decode(to_char(b,'MM'),'10',1,'11',1,'12',1,0)) as four from table1
5 group by to_cha
ÎÒ¶ÔSQL SERVERºÍACCESS±È½ÏÊ죬ËùÒÔÊý¾Ý¿âµÄͨÓûù´¡¶«Î÷¿ÉÒÔ˵¶¼ÕÆÎյIJ¶àÁË£¬ÎÒÏÖÔÚÏëÒªµÄ¾ÍÊÇÒÔÉÏÁ½Êý¾Ý¿âµÄ¶ÀÌØÖ®´¦µÄ½éÉܺÍÓ¦ÓýéÉÜ¡£
ÁíÍâÊé×îºÃ¶ÔÓ¦×îа汾 oracleÊÇ11g°É 10µÄÒ²ÐУ»mysqlÊÇ5.1°É
л ......