sql实现查询今天,近7天,近1个月,近半年,近1年数据

sql实现查询今天,近7天,近1个月,近半年,近1年数据

注:以下所执行的情况都是以2024-06-12 xx:xx:xx为基准去操作的

使用到的函数有:
CURDATE()

select CURDATE()

在这里插入图片描述

DATE_SUB()

select DATE_SUB(now(),INTERVAL 1 day)

在这里插入图片描述

查询今天的数据

这里写了大于等于,因为数据库里面存的是年月日时分秒,但是curdate函数只是截取到了今天,没有具体的时分秒,单单写等于的话是查询不出数据的。

select time from user
where time>=CURDATE()

在这里插入图片描述

查询近昨天数据

在这里插入代码片

查询近几个小时前数据

hour前面的数字是几就查询几个小时的数据

select time from cdx_user
where time>=DATE_SUB(now(),INTERVAL 5 hour)

在这里插入图片描述

查询近7天数据

select time from cdx_user
where time>=DATE_SUB(now(),INTERVAL 7 day)

在这里插入图片描述

查询近30天数据

select time from cdx_user
where time>=DATE_SUB(now(),INTERVAL 30 day)

在这里插入图片描述

查询近半年数据

select time from cdx_user
where time>=DATE_SUB(now(),INTERVAL 180 day)

在这里插入图片描述

查询近一年数据

select time from cdx_user
where time>=DATE_SUB(now(),INTERVAL 365 day)

或者

select time  from cdx_user
where time>DATE_SUB(now(),INTERVAL 1 year)

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要求1-7留存,需要用到登录表和注册表,其中登录表记录用户每的登录情况,注册表记录用户注册的日期。假设登录表为login,注册表为register,其中login表包含用户ID(user_id)和登录日期(login_date)两个字段,register表包含用户ID(user_id)和注册日期(register_date)两个字段,则可以使用以下SQL语句计算1-7留存: ``` SELECT COUNT(DISTINCT l7.user_id) / COUNT(DISTINCT r.user_id) AS retention_rate FROM login l1 JOIN register r ON l1.user_id = r.user_id LEFT JOIN login l7 ON l1.user_id = l7.user_id AND DATEDIFF(l7.login_date, l1.login_date) = 6 WHERE l1.login_date = DATE_SUB(r.register_date, INTERVAL 1 DAY) AND l1.login_date BETWEEN '2022-01-01' AND '2022-01-07' AND r.register_date BETWEEN '2022-01-01' AND '2022-01-07'; ``` 以上SQL语句使用了三个表的JOIN操作,分别是login表自连接,register表和login表的LEFT JOIN连接。其中,login表自连接是为了找到每个用户在第一(注册当)和第七的登录记录,register表和login表的LEFT JOIN连接是为了保证每个注册用户都能被计算在留存率中。 具体来说,SQL语句中的WHERE条件限制了查询的时间范围和用户登录的时间条件,查询的是从202211日到202217日每的留存率。其中,l1.login_date = DATE_SUB(r.register_date, INTERVAL 1 DAY)表示在用户注册当的前一(即T-1)登录,l1.login_date BETWEEN '2022-01-01' AND '2022-01-07'表示在1-7内的登录记录,r.register_date BETWEEN '2022-01-01' AND '2022-01-07'表示在1-7内注册的用户。 最后,将查询结果按照留存率(retention_rate)进行计算,即计算第7的留存用户数除以第1的注册用户数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q_may

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值