mysql中date与datetime在数据统计中的区别

 

Type:mysql
表结构:
 CREATE TABLE `abc` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_date` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM ;
 
数据:
mysql> select * from abc;
+----+-------------+
| id | create_date |
+----+-------------+
|  1 | 2011-08-12  |
|  2 | 2011-08-12  |
|  3 | 2011-08-12  |
|  4 | 2011-08-12  |
|  5 | 2011-08-12  |
|  6 | 2011-08-12  |
|  7 | 2011-08-12  |
|  8 | 2011-08-12  |
|  9 | 2011-08-11  |
| 10 | 2011-08-11  |
| 11 | 2011-08-11  |
| 12 | 2011-08-11  |
| 13 | 2011-08-11  |
| 14 | 2011-08-11  |
+----+-------------+
 
执行sql1:
mysql> select * from abc where create_date>='2011-08-11 00:00:00';
+----+-------------+
| id | create_date |
+----+-------------+
|  1 | 2011-08-12  |
|  2 | 2011-08-12  |
|  3 | 2011-08-12  |
|  4 | 2011-08-12  |
|  5 | 2011-08-12  |
|  6 | 2011-08-12  |
|  7 | 2011-08-12  |
|  8 | 2011-08-12  |
|  9 | 2011-08-11  |
| 10 | 2011-08-11  |
| 11 | 2011-08-11  |
| 12 | 2011-08-11  |
| 13 | 2011-08-11  |
| 14 | 2011-08-11  |
+----+-------------+
14 rows in set (0.00 sec)
 
 
执行sql2:
mysql> select * from abc where create_date>='2011-08-11 00:00:01';
+----+-------------+
| id | create_date |
+----+-------------+
|  1 | 2011-08-12  |
|  2 | 2011-08-12  |
|  3 | 2011-08-12  |
|  4 | 2011-08-12  |
|  5 | 2011-08-12  |
|  6 | 2011-08-12  |
|  7 | 2011-08-12  |
|  8 | 2011-08-12  |
+----+-------------+
8 rows in set (0.00 sec)
 
执行sql3:


mysql> select * from abc where create_date='2011-08-11 00:00:00';
+----+-------------+
| id | create_date |
+----+-------------+
|  9 | 2011-08-11  |
| 10 | 2011-08-11  |
| 11 | 2011-08-11  |
| 12 | 2011-08-11  |
| 13 | 2011-08-11  |
| 14 | 2011-08-11  |
+----+-------------+
6 rows in set (0.01 sec)
 
 
结论:

在mysql下date 如:2011-08-11  默认为'2011-08-11 00:00:00',可以返回正确的结果集

你可能感兴趣的:(DateTime)