2013-04-27 72 views
0

我正在创建一个sql查询,用于确定用户是否为一年的成员,如果是,则发送电子邮件。我的逻辑告诉我,我也应该确保他们在过去的一年中保持活跃。这里是我的sql查询:MySQL确定用户是否已在X天内登录

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查询吗?

回答

0

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

请务必注意2014年2月29日发生的事情,以及当天最后登录的人。

+0

我觉得很蠢。我没有考虑测试它。 – jkushner 2013-04-27 18:41:07

1

您的查询当前正在返回一年前创建的用户以及自此之后登录的用户组。您不希望一年前创建的用户高达,并且已登录吗?即>= CURRENT_DATE()而不是= CURRENT_DATE()

相关问题