Web サイトで PHP と MySQL を使用しています。私のデータベースには という名前のテーブルが 1 つありますusers
。2 つのフィールドがあります。user_reg_date(bigint(12)) and user_last_login(bigint(12))
. これら 2 つのフィールドには、日付がUNIX TIMESTAMP形式で格納されます。テーブル全体の構造は次のとおりです。
user_id varchar(32)
user_title enum('Mr', 'Ms', 'Mrs')
user_first_name varchar(50)
user_last_name varchar(50)
user_name varchar(100)
user_password varchar(50)
user_email varchar(150)
user_dob date
user_hybridauth_p_name varchar(100)
user_hybridauth_p_uid varchar(100)
user_reg_date bigint(12)
user_status enum('enable', 'disable')
user_subscription enum('lifetime', 'period')
user_update_date bigint(12)
user_last_login bigint(12)
user_last_activity bigint(12)
user_created_staff_id varchar(32)
user_updated_staff_id varchar(32)
user_registered_type enum('online', 'manual')
user_reg_date
ここで、レコード数、つまり、現在の週の日付内にあるユーザーの数と、現在の週の日付内にあるユーザーのレコード数を表示したいと考えていますuser_last_login
。他のクエリも、現在の日付からの過去 2 週間だけでなく、先週のレコード数を表示する必要があります。また、同じレコード数を月ごとに表示したいと考えています。これを達成するために誰かが私を助けることができますか? 前もって感謝します。私は2つの日付の間でそのようなカウントを取得しようとしましたが、それはある程度完全に機能しました. user_reg_date の日付ごとのカウントは表示されますが、最後にログインしたユーザーの数は表示されません。完璧なクエリを作成することはできません。このために私が書いたクエリは次のとおりです。
SELECT date( FROM_UNIXTIME( user_reg_date ) ) 'Current Date', COUNT( user_reg_date ) 'registered_user_count', COUNT( user_last_login ) 'logged_in_count'
FROM users
WHERE user_reg_date >=1341100800
AND user_reg_date <=1374451200
AND user_last_login >=1341100800
AND user_last_login <=1374451200
GROUP BY date( FROM_UNIXTIME( user_reg_date ) ) , date( FROM_UNIXTIME( user_last_login ) )