Ошибка здесь:
.%Y-%m-%d.
Редактировать
Фил указал, что мое решение было неверным. Я перепроверил, и он был прав. Решение должно быть просто снять галочки и поставить в двойные кавычки:
// assume $date is set
$whereSQL .= ' AND o.order_date BETWEEN last_day(NOW() -'
. ' INTERVAL 5 MONTH) AND date_format(NOW(), "%Y-%m-%d")';
В качестве альтернативы, вы можете избежать одинарных кавычек, используя обратную косую черту, и удалить оператор sting concat:
... date_format(NOW(), \'%Y-%m-%d\')';
Кроме того, я вижу, что вы расширяете Zend_Db_Table_Abstract
, и, как таковая, вам не нужна строка:
$oDb = Zend_Registry::get('db');
Просто опустите это и используйте $this
. И это будет выглядеть примерно так (упрощено с добавлением предложения GROUP BY
):
$select = $this->select()
->from($fromTable, $columns)
->where($whereSQL)
->group('month(o.order_date)');
$result = $this->fetchAll($select);
Чтобы добавить предложение GROUP BY
, просто сделайте это (или см. Приведенный выше пример с использованием цепочки методов):
$select->group('month(o.order_date)');
Спасибо Фил за помощь!