2017-08-17 16 views
0

週間隔の前に登録するテーブルからユーザーをフェッチするクエリを書きたいと思います。 例:今日の日付は2017-08-17だから、2017-08-10、2017-08-03,2017-07-27などに登録するユーザーが必要です。このように今日の日付が2017-08-20の場合、ユーザーは2017-08-13、2017-08-06に登録されます。Mysqlは毎週のインターバルのユーザーリストを取得します

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 
+0

彼らは同じ曜日の値を持つので、 "曜日(登録簿)=平日(input_date)のユーザから*選択してください;"要件ごとに – verhie

+0

それはmysqlのクエリを介して動作する必要があります。 –

+0

ソースデータはどのように見えますか? – verhie

答えて

1

一つの方法だろう、我々はその差が今日から7日の倍数であるの日付を保持することを認識することです。各レコードのUNIXタイムスタンプを比較して、7日間の秒数で割った秒数がゼロであるかどうかを調べることができます。ここ

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

デモ:

Rextester

+0

そして15日間が15日の場合 –

+0

@ lbmgplusそれからちょうど '15 * 24 * 60 * 60'を確認してください。 –

+0

間隔は日、週、月、年を基準にしています。すなわち月。今日2017-08-17の場合、結果は2017-07-17、2017-06-17 –

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

これはあなたの日前0、7、14、21など登録されているすべてのユーザーを取得します。

+0

間隔は日、週、月、年、つまり15日で表示されます –

+0

月が不均一な日数で、7月のグループ化もありません。 –

関連する問題