mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-03-14 14:53:22 |
+---------------------+
1 row in set (0.00 sec)我想让它只显示2010-03-14

解决方案 »

  1.   


    select date_format(now(),'%Y-%m-%d');
      

  2.   

    mysql> select CURDATE();
    +------------+
    | 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>
      

  3.   

    now()函数是个多结果输出的函数。
    假如你建立的表的字段类型是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类型结果。