Mysql获取每周间隔的用户列表

时间:2017-08-17 13:40:53

标签: mysql

我想编写查询来从在周间隔之前注册的表中获取用户。 对于前者今天的日期是2017-08-17,我需要在2017-08-10,2017-08-03,2017-07-27注册的用户,依此类推。如果今天的日期是2017-08-20,那么用户将在2017-08-13,2017-08-06注册。

id name date
1 ABC 2018-08-16
2 PQR 2018-08-10
3 LMN 2018-07-27
4 AAA 2018-01-01

输出

id name date
2 PQR 2018-08-10
3 LMN 2018-07-27

2 个答案:

答案 0 :(得分:1)

表达此问题的一种方法是认识到我们希望保留与今天的差异为7天的倍数的日期。我们可以比较每条记录的UNIX时间戳,并检查秒数除以7天内的秒数是否为零。

SELECT *
FROM yourTable
WHERE
    MOD(UNIX_TIMESTAMP(CURDATE()) -
        UNIX_TIMESTAMP(DATE(reg_date)), 7*24*60*60) = 0

在这里演示:

Rextester

答案 1 :(得分:0)

SELECT * FROM user WHERE WEEKDAY(`date`) = WEEKDAY(NOW());

这将为您提供所有注册0,7,14,21天等的用户。