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."%'");

Комментарии 4

Написать комментарий
  1. vadim

    @VolCh
    Да только нет таких функций: ‘first day of previous month’ и ‘last day of previous month’. Их еще вычислить надо. Как их вычислить?

  2. VolCh

    @qqq
    Тоже вариант, только кэшироваться запрос не будет.

  3. VolCh

    Какой ужас!!!

    $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, как правило, лучше проиндексировать

  4. qqq

    $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)");

Оставить комментарий

или Ctrl+Enter

Комментарии к записи по RSS