MySQL中BIT_COUN和BIT_OR的使用。统计每个月天数不同的有几个
2009/05/03 4:47 P.M.
- Drop table if exists timeTable;
- CREATE TABLE timeTable (
- year YEAR(4),
- month INT(2) UNSIGNED ZEROFILL,
- day INT(2) UNSIGNED ZEROFILL
- );
- INSERT INTO timeTable VALUES(2001,1,1),
- (2002,6,20),
- (2003,5,30),
- (2004,2,2),
- (2005,4,23),
- (2006,3,23),
- (2002,6,30);
- /*
- * 看看每个月发生的不同的天数
- * BIT_COUNT(N) 返回在参数 N 中设置的比特位数量。
- */
- SELECT year, month, BIT_COUNT(BIT_OR(1<<day)) AS days FROM timeTable
- GROUP BY year,month;
- /*
- +------+-------+------+
- | year | month | days |
- +------+-------+------+
- | 2001 | 01 | 1 |
- | 2002 | 06 | 2 |
- | 2003 | 05 | 1 |
- | 2004 | 02 | 1 |
- | 2005 | 04 | 1 |
- | 2006 | 03 | 1 |
- +------+-------+------+
- 6 rows in set (0.02 sec)
- */
-
