select DATE_SUB(sysdate(),INTERVAL 1 month)
 这个是上个月的当前时间。(例如  当前是2010-03-16 13:00:00  那么这个语句就是2010-02-16 13:00:00)我现在想求 上个月的 同日的18:00 这个时间点
例如  当前是2010-03-16 13:00:00  那么如何能得到2010-02-16 18:00:00这个语句如何写

解决方案 »

  1.   

    mysql> select date_sub(DATE_SUB('2010-03-16 13:00:00',INTERVAL 1 month),interval -5 hour);
    +-------------------------------------------------------------------------------+
    | date_sub(DATE_SUB('2010-03-16 13:00:00',INTERVAL 1 month),interval -5 hour) |
    +-------------------------------------------------------------------------------+
    | 2010-02-16 18:00:00                                                           |
    +-------------------------------------------------------------------------------+
      

  2.   

    mysql> select concat (curdate() - INTERVAL 1 month, ' 18:00:00');
    +----------------------------------------------------+
    | concat (curdate() - INTERVAL 1 month, ' 18:00:00') |
    +----------------------------------------------------+
    | 2010-02-16 18:00:00                                |
    +----------------------------------------------------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    参考一下1#楼的方法,这样估计更好。
    mysql> select curdate() - INTERVAL 1 month + INTERVAL 18 hour;
    +-------------------------------------------------+
    | curdate() - INTERVAL 1 month + INTERVAL 18 hour |
    +-------------------------------------------------+
    | 2010-02-16 18:00:00                             |
    +-------------------------------------------------+
    1 row in set (0.00 sec)mysql>