MySQL时间操作

来源:互联网 发布:moxa串口调试 linux 编辑:程序博客网 时间:2024/06/03 17:06

MySQL时间加减函数为date_add()、date_sub()

定义和用法
DATE_ADD() 函数向日期添加指定的时间间隔。
DATE_SUB() 函数向日期减少指定的时间间隔。
语法
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)

date 参数是合法的日期表达式。

expr参数是您希望添加的时间间隔。

type 参数可以是下列值:

Type 值MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

取得当天:

SELECT curdate();
  +----------------+
  | curdate()      |
  +----------------+
  | 2013-07-29 |
  +----------------+


取得当前日期:

select now();
  +-----------------------------+
  |now()                                  |
  +-----------------------------+
  | 2013-07-29 22:10:40     |
  +-----------------------------+

取得明天(既当前时间加一天)

select date_add(curdate(),interval 1 day);

+------------------------------------------------+
  | date_sub(curdate(),interval 1 day)   |
  +----------------------------------------------+
  |2013-07-28                                            |
  +----------------------------------------------+

取得前一天(当前时间减一天):

select date_sub(curdate(),interval 1 day);
  +----------------------------------------------+
  | date_sub(curdate(),interval 1 day) |
  +----------------------------------------------+
  |2013-07-28                                          |
  +----------------------------------------------+

也可以使用下面这种方式

今天

SELECT * FROM表名 WHERE TO_DAYS(时间字段名)=TO_DAYS(NOW());

昨天

SELECT * FROM 表名 WHERE TO_DAYS( NOW()) - TO_DAYS( 时间字段名) <= 1;

7天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名);

近30天

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);

本月

SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ),'%Y%m');

上一月

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format(now() , '%Y%m' ) , date_format( 时间字段名, '%Y%m')) = 1;



原创粉丝点击