主要使用MySQL的 DATE_SUB() 函数
一、简介
定义和用法
DATE_SUB() 函数从日期减去指定的时间间隔。
语法
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
Type 值 |
---|
MICROSECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR |
SECOND_MICROSECOND |
MINUTE_MICROSECOND |
MINUTE_SECOND |
HOUR_MICROSECOND |
HOUR_SECOND |
HOUR_MINUTE |
DAY_MICROSECOND |
DAY_SECOND |
DAY_MINUTE |
DAY_HOUR |
YEAR_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个小时
三、扩展
获得当前日期+时间(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() 在函数执行时动态得到值
欢迎关注公众号:慌途L
后面会慢慢将文章迁移至公众号,也是方便在没有电脑的情况下可以进行翻阅,更新的话会两边同时更新,大家不用担心!