php+mysql: выборка записей за прошлый месяц
$ddty=date("Y"); $ddtm=date("m"); if ($ddtm=='1') { $ddtf=($ddty-1)."-12"; } else { $ddtmt=$ddtm-1; if ($ddtmt<10) { $ddtmt='0'.$ddtmt; } $ddtf=($ddty)."-".$ddtmt; } $q=mysql_query("SELECT * FROM table WHERE date LIKE '".$ddtf."%'");
@VolCh
Да только нет таких функций: ‘first day of previous month’ и ‘last day of previous month’. Их еще вычислить надо. Как их вычислить?
@qqq
Тоже вариант, только кэшироваться запрос не будет.
Какой ужас!!!
$from_date = date(«Y-m-d», strtotime(‘first day of previous month’)) . » 00:00:00″;
$to_date = date(«Y-m-d», strtotime(‘last day of previous month’)) . » 23:59:59″;
$query = «SELECT * FROM table WHERE date BETWEEN ($from_date, $to_date)»
date, как правило, лучше проиндексировать
$q=mysql_query(«select * from table
where date > LAST_DAY(DATE_SUB(CURDATE(), INTERVAL 2 MONTH))
AND date < DATE_ADD(LAST_DAY(CURDATE() — INTERVAL 1 MONTH), INTERVAL 1 DAY)");