主要使用MySQL的 DATE_SUB() 函数
一、简介
定义和用法
DATE_SUB() 函数从日期减去指定的时间间隔。语法
DATE_SUB(date,INTERVAL expr type) date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH 二、使用:- 当前日期的前三十天和后三十天 (DATE_SUB函数本身是减法,用负数就是加)
SELECT * from user
where create_time between DATE_SUB(NOW(),INTERVAL 30 day) and DATE_SUB(NOW(),INTERVAL -30 day)
- 示例
select now();-- 当前时间
--结果: 2018-12-06 20:35:21
select DATE_SUB(now(), INTERVAL 30 DAY);-- 前三十天
--结果: 2018-11-06 20:35:21
select DATE_SUB(now(), INTERVAL -30 DAY);-- 后三十天(函数本身是减法,用负数就是加)
--结果: 2019-01-05 20:35:21
select DATE_SUB(now(), INTERVAL 1 month);-- 减去一个月
--结果: 2018-11-06 20:35:21
select DATE_SUB(now(), INTERVAL 1 year);-- 减一年
--结果: 2017-12-06 20:35:21
select DATE_SUB(now(), INTERVAL -12 HOUR); -- 加12个小时
三、扩展
- mysql获取当前时间:可以使用now()或者sysdate()
获得当前日期+时间(date + time)函数:now() 或者 sysdate()
--例: 2018-12-06 20:46:39
获得当前日期(date)函数:curdate()/current_date()/current_date()
--例: 2018-12-06
获得当前时间(time)函数:curtime() /current_time() / current_time()
--例: 20:38:13
- 注意 sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值