2016-06-27 4 views
0

今日作成されたmysqlデータベースのレコード、先週作成されたレコード、先月作成されたレコードを表示するいくつかのsqlクエリを書きたい。過去7日間(今日も含む)に作成された結果を表示します。たとえば、今日が日曜日の場合は、月曜日から土曜日までに作成された結果(今日ではない)を表示したいと考えています。同様に、2番目のクエリでは、先月作成されたレコード(今月のレコードを除く)を表示する必要があります。これは6月であれば、私のテーブル名がloginある今日、先週、先月作成されたレコードを表示するsqlクエリ

SELECT COUNT(*) AS stdtotal FROM `login` 
WHERE `account_created_date` > DATE_SUB(NOW(), INTERVAL 30 DAY) 

注意があり、列名はタイプのaccount_created_dateです。たとえば、私は月

SELECT COUNT(*) AS stdtotal FROM `login` 
WHERE `account_created_date` > DATE_SUB(NOW(), INTERVAL 7 DAY) 

およびその他のクエリで作成されたレコードを見たいです日付。

+0

問題は何ですか。あなたは期待どおりの結果を得ています。 –

+0

最初のクエリは、過去7日間(今日を含む)に作成された結果を表示します。たとえば、今日が日曜日の場合は、月曜日から土曜日までに作成された結果が表示されます。同様に、2番目のクエリでは、先月作成されたレコード(今月のレコードを除く)を表示する必要があります。たとえば、6月の場合は、5月に作成されたレコードが表示されます。 –

+0

だから、 'WHERE SomeDateField OneDate AND SecondDate'を使う必要があります。 –

答えて

1

where句を修正するだけです。前月の

WHERE account_created_date >= DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND 
     account_created_date < CURDATE() 

WHERE account_created_date >= DATE_SUB(DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE) - 1 DAY), INTERVAL 1 MONTH) AND 
     account_created_date < DATE_SUB(CURDATE(), INTERVAL DAY(CURDATE) - 1 DAY) 

これは、現在の月の最初の日を計算し、その前の1ヶ月が行く前の7日間。

+0

今月作成されたレコードを表示してもらえますか? –

+0

'where account_created_date> = DATE_SUB(CURDATE()、INTERVAL DAY(CURDATE) - 1 DAY)'です。 –

関連する問題