Mega Code Archive

 
Categories / MySQL / Date Time
 

Use BETWEEN and AND for a date data type

/* mysql> Drop table timeTable; Query OK, 0 rows affected (0.00 sec) mysql> CREATE TABLE timeTable (     ->     year YEAR(4),     ->     month INT(2) UNSIGNED ZEROFILL,     ->     day INT(2) UNSIGNED ZEROFILL     -> ); Query OK, 0 rows affected (0.06 sec) mysql> INSERT INTO timeTable VALUES(2001,1,1),     ->                             (2002,6,20),     ->                             (2003,5,30),     ->                             (2004,2,2),     ->                             (2005,4,23),     ->                             (2006,3,23); Query OK, 6 rows affected (0.00 sec) Records: 6  Duplicates: 0  Warnings: 0 mysql> select * from timeTable; +------+-------+------+ | year | month | day  | +------+-------+------+ | 2001 |    01 |   01 | | 2002 |    06 |   20 | | 2003 |    05 |   30 | | 2004 |    02 |   02 | | 2005 |    04 |   23 | | 2006 |    03 |   23 | +------+-------+------+ 6 rows in set (0.01 sec) mysql> select * from TimeTable WHERE year BETWEEN 2001 AND 2003; +------+-------+------+ | year | month | day  | +------+-------+------+ | 2001 |    01 |   01 | | 2002 |    06 |   20 | | 2003 |    05 |   30 | +------+-------+------+ 3 rows in set (0.00 sec) */ Drop table 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); select * from timeTable;    select * from TimeTable WHERE year BETWEEN 2001 AND 2003;