mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2010-03-14 14:53:22 |
+---------------------+
1 row in set (0.00 sec)我想让它只显示2010-03-14
+---------------------+
| now() |
+---------------------+
| 2010-03-14 14:53:22 |
+---------------------+
1 row in set (0.00 sec)我想让它只显示2010-03-14
select date_format(now(),'%Y-%m-%d');
+------------+
| CURDATE() |
+------------+
| 2010-03-14 |
+------------+
1 row in set (0.00 sec)mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2010-03-14 |
+-------------+
1 row in set (0.00 sec)mysql>
假如你建立的表的字段类型是datetime,那么你插入now(),只是写入到日期,比如2010-03-14 19:01:01
假如你建立的表的字段类型是timestamp,那么你插入now(),便会写入2010-03-14 19:01:01.03
假如你建立的表的字段类型是time,那么你插入now(),便会写入19:01:01;
所以根据你表的字段类型的不同,now()会给你不同的结果。
而select now()会按最详细的给你显示,即timestamp类型结果。