如何使用sql语句提取时间含有年月日时的数据,以当前天往前推30天数据
select *,
每个月每个日期的登陆顺序-coalesce(lag(每个月每个日期的登陆顺序,1) over (partition by month(online_date),user_id order by '每个月每个日期的登陆顺序'),0) as '连续登陆天数'
from(
select *,lead(online_date,1,'当月最后登陆日期') over (partition by month(online_date), user_id order by online_date) as 当月下一次登陆日期
from (
select *,month(online_date) as 月,row_number() over (partition by month(online_date), user_id order by online_date) as 每个月每个日期的登陆顺序
from user_online_record
) as t1
) as t2
where date_sub(当月下一次登陆日期,interval 1 day) <> online_date or 当月下一次登陆日期='当月最后登陆日期';
直接根据日期,往前计算30天就行了,下边是查询30天之前的当前时间
mysql SELECT DATE_SUB(NOW(), INTERVAL 30 DAY);
oracle select sysdate-30 from dual;
Sql = "select 销售日期,门店,实际分类,品类,条码号,款式,款号,子名称, 数量,重量,手寸 from [sheet$] where DATE(销售日期) >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)"
Sheet11.Cells.Clear
Sheet11.Range("a1").CopyFromRecordset 销售表.Execute(Sql)