Mysqlはテーブルから最新3日間のレコードを取得する、SQL文の書き方です。インターネットで調べたものですが、これは 現在時刻を開始点として過去数日間の記録を取得するselect * from報酬 where DATE_SUB(CURDATE(), INTERVAL 4 DAY)
<= date( day) order by day desc
それで、基準点は何であるべきだと思いますか?
直近の3日間は今日、昨日、一昨日です。現在の時刻から 3 日間遡ってフィルタリングします。
$startDate=date('Y-m-d',strtotime("-29 days"));
$endDate=date('Y-m-d');
$sql="報酬の作成時刻から * を選択>=" .$start." 00:00:00' and createTime<='".$end." 00:59:59'";
それで、基準点は何であるべきだと思いますか? たとえば、今日は 5 月 14 日ですが、表内のデータ日は 5 月 10 日までです。本来の目的は、8、9、10 の 3 日を取り出すことです。14 日を基準点として使用すると、次のようになります。 3 日分を前にします。取得した 3 日分は 12、13、14 (データなし) なので、要件を満たせません
最新の 3 日分は、今日、昨日、一昨日です。現在の時刻から 3 日間遡ってフィルタリングします。 4 階を見てください
try
select * from tt inner join(select date(day) as `day` from tt group by date(`day`) order by `day` desc limit 3) aon date(tt.day)=a.day
try
select * from tt inner join(select date(day) as `day` from tt group by date(`day`) order by `day` desc limit 3) aon date(tt.day)=a.day