2013-04-27 42 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()

相關問題