MySQL确定用户是否在X天内登录

时间:2013-04-27 18:36:45

标签: mysql sql timestamp

我正在创建一个sql查询,用于确定用户是否已成为成员一年,如果是,则发送电子邮件。我的逻辑告诉我,我还应该确保他们在过去一年的服务中一直活跃。这是我的SQL查询:

SELECT * FROM users WHERE FROM_UNIXTIME(date_created,'%Y-%m-%d') + INTERVAL 365 DAY = CURRENT_DATE() AND FROM_UNIXTIME(last_login,'%Y-%m-%d') + INTERVAL 365 DAY >= CURRENT_DATE()

我的假设是,如果last_login + 365天大于或等于当前日期,则表示他们已在365天内登录。

上次登录是TIMESTAMP。这是一个正确的SQL查询吗?

2 个答案:

答案 0 :(得分:1)

您的查询当前正在返回一年前创建并且从那时起登录的用户集。您不希望一年前创建最多的用户以及谁登录?即>= CURRENT_DATE()而不是= CURRENT_DATE()

答案 1 :(得分:0)

知道它是否是有效查询的唯一方法是测试它,测试它的唯一方法是创建跨越边界条件的数据。

请注意2014年2月29日发生的事情,或者当天最后一次登录的人。