有一个字段类型是datetime 里面保存着2011-01-22 19:58:00
这样一个时间,我想增加一个月,减少一个月
增加一天一小时
减少一天一小时
应该用哪个函数。还望达人指点

解决方案 »

  1.   


    我想增加一个月,减少一个月
    mysql> select adddate('2011-01-22 19:58:00',interval 1 month);
    +-------------------------------------------------+
    | adddate('2011-01-22 19:58:00',interval 1 month) |
    +-------------------------------------------------+
    | 2011-02-22 19:58:00                             |
    +-------------------------------------------------+
    1 row in set (0.00 sec)mysql> select adddate('2011-01-22 19:58:00',interval -1 month);
    +--------------------------------------------------+
    | adddate('2011-01-22 19:58:00',interval -1 month) |
    +--------------------------------------------------+
    | 2010-12-22 19:58:00                              |
    +--------------------------------------------------+
    1 row in set (0.00 sec)
    增加一天一小时,减少一天一小时
    mysql> select adddate('2011-01-22 19:58:00',interval -25 hour);
    +--------------------------------------------------+
    | adddate('2011-01-22 19:58:00',interval -25 hour) |
    +--------------------------------------------------+
    | 2011-01-21 18:58:00                              |
    +--------------------------------------------------+
    1 row in set (0.00 sec)mysql> select adddate('2011-01-22 19:58:00',interval 25 hour);
    +-------------------------------------------------+
    | adddate('2011-01-22 19:58:00',interval 25 hour) |
    +-------------------------------------------------+
    | 2011-01-23 20:58:00                             |
    +-------------------------------------------------+
    1 row in set (0.00 sec)
      

  2.   

    试试下边这个:
    mysql> select date_add(id, interval -25 hour) from tdate;
    +---------------------------------+
    | date_add(id, interval -25 hour) |
    +---------------------------------+
    | 2011-01-21 18:58:00             |
    +---------------------------------+
    1 row in set (0.00 sec)
      

  3.   

    mysql> select * from tdate;
    +---------------------+
    | id                  |
    +---------------------+
    | 2011-01-22 19:58:00 |
    +---------------------+
    1 row in set (0.00 sec)mysql> select date_add(id, interval 1 month) from tdate;
    +--------------------------------+
    | date_add(id, interval 1 month) |
    +--------------------------------+
    | 2011-02-22 19:58:00            |
    +--------------------------------+
    1 row in set (0.00 sec)mysql> select date_add(id, interval 25 hour) from tdate;
    +--------------------------------+
    | date_add(id, interval 25 hour) |
    +--------------------------------+
    | 2011-01-23 20:58:00            |
    +--------------------------------+
    1 row in set (0.00 sec)mysql> select date_add(id, interval -25 hour) from tdate;
    +---------------------------------+
    | date_add(id, interval -25 hour) |
    +---------------------------------+
    | 2011-01-21 18:58:00             |
    +---------------------------------+
    1 row in set (0.00 sec)