当前位置:   article > 正文

sql函数--07---Mysql取前一天,前一周,后一天等时间函数_sql 取前一天数据

sql 取前一天数据

DATE_SUB()函数的用法

在这里插入图片描述

语法:

  • 获取当前日期:select curdate()
  • 获取当前日期前一天:select date_sub(curdate(),interval 1 day)
  • 获取当前日期后一天:select date_sub(curdate(),interval -1 day)

案例:

  • 当前日期的前三十天和后三十天 (DATE_SUB函数本身是减法,用负数就是加)
SELECT * from user 
where create_time between DATE_SUB(NOW(),INTERVAL 30 day) and DATE_SUB(NOW(),INTERVAL -30 day)


  • 1
  • 2
  • 3
  • 4
  • 示例

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

备注:

SELECT NOW(),CURDATE(),CURTIME()

结果类似:

NOW()CURDATE()CURTIME()
2016-08-01 16:25:462016-08-0116:25:46

相反的还有 add函数:

set @dt = now();

select date_add(@dt, interval 1 day); – add 1 day
select date_add(@dt, interval 1 hour); – add 1 hour
select date_add(@dt, interval 1 minute); – …
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year);

在这里插入图片描述

日期/时间转换为字符串:

date_format(date,format), time_format(time,format)
 
select date_format('2018-08-11 12:30:00', '%Y %m %d %H%i%s');
# 2018 08 11 123000 
  • 1
  • 2
  • 3
  • 4

字符串转换为日期:

str_to_date(str, format)
 
select str_to_date('08/11/2018', '%m/%d/%Y'); -- 2018-08-11
 
select str_to_date('08/11/08' , '%m/%d/%y'); -- 2018-08-11
 
select str_to_date('08.11.2008', '%m.%d.%Y'); -- 2018-08-11
 
select str_to_date('08:00:30', '%h:%i:%s'); -- 08:00:30
 
select str_to_date('08.11.2018 08:00:30', '%m.%d.%Y %h:%i:%s'); 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

取本月|本月第一天|最后一天 的时间和时间戳

select curdate();  -- 2020-07-21
select DAY(CURDATE()); -- 21
SELECT MONTH(CURDATE()); -- 7
SELECT YEAR(CURDATE()); -- 2020

select DATE_ADD(curdate(),interval -day(curdate())+1 day); -- 2020-07-01

SELECT DATE_ADD(CURDATE(),INTERVAL 1-DAYOFMONTH(CURDATE()) DAY);  -- 获取本月第一天

select last_day(curdate());   -- 获取当月最后一天
select date_add(curdate()-day(curdate())+1,interval 1 month ) -- 获取下个月的第一天

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/313831?site
推荐阅读
相关标签
  

闽ICP备14008679号