赞
踩
MySQL运用日期加减,计算前(后)一年的同一周同一天的日期
1.准备知识点
(1)MySQL 日期时间加减
now (); 当前具体的日期和时间
curdate (); 当前日期
curtime(); 当前时间
(2)MySQL加减某个时间间隔
加减某个时间间隔函数date_add()与date_sub()
date_add(‘某个日期时间’,interval 1 时间种类名);
例:select date_add(curdate(), interval 1 year); //加1年
select date_add(curdate(), interval 1 month); //加1月
select date_add(curdate(), interval 1 day); //加1天
其中:quarter:季,week:周,day:天,hour:小时,minuter:分钟,second:秒,microsecond:毫秒
说明:也可以不用变量,对某个时间进行直接加减
例:select date_add(‘1998-01-01’, interval 1 day);
(3)日期相减
datediff(date1,date2):两个日期相减,date1减去date2得到相减之后的天数
timediff(time1,time2):两个时间相减 time1减time2,返回差值。
select timediff(‘2019-06-03 12:30:00’, ‘2019-06-03 12:29:30’);
等同于select timediff(‘12:30:00’, ‘12:29:30’);
2.计算一年前的同一周某天的日期
思路:365/7=52.14周,所以,用当前日期减去527=364天,即为前一年的同一周某天的日期,如下:
select date_sub(curdate(), interval 364 day) //当天日期减去527
所以应用到具体例子可以灵活处理,例如,查询上年同一周同一日的订单语句:
select * from order_table where createTime>=(select date_sub(curdate(), interval 364 day)) and createTime <(select date_sub(curdate(), interval 363 day));
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。