0

ユーザーが1年間メンバーであるかどうかを判断し、そうであればメールを送信するSQLクエリを作成しています。私の論理では、彼らが過去 1 年間の勤務期間中に活動していることも確認する必要があると言っています。これが私の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 クエリですか?

4

2 に答える 2

1

クエリは現在、正確に 1 年前に作成され、それ以降にログインした一連のユーザーを返しています。1 年前までに作成され、ログインしたユーザーは必要ありませんか? すなわち>= CURRENT_DATE()の代わりに= CURRENT_DATE()

于 2013-04-27T18:40:10.797 に答える
0

それが有効なクエリかどうかを知る唯一の方法は、それをテストすることです。それをテストする唯一の方法は、境界条件にまたがるデータを作成することです。

2014 年 2 月 29 日に何が起こるか、またはその日に最後にログインした人にも注目してください。

于 2013-04-27T18:40:08.907 に答える