@Silverviql

Как вывести данные в промежутке дат yii2 mysql?

$dataProvider = new ActiveDataProvider([
    'query' => \app\models\Zakaz::find(
        ->where('action <= 0') ->andWhere( 'date >= 2018-04-01  AND date <= 2018-08-01')
       /* ->groupBy('date_close')*/,
    'pagination' => [
        'pageSize' => 20,
    ],
]);


Почему условие andWhere не понимает значение дат , в бд хранится как 2018-06-19 10:30:51 и т.д
просто писать DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) и вычитать там месяц 2 месяца и т.д по мне так бред, должно быть более удобное обозначение.
  • Вопрос задан
  • 405 просмотров
Решения вопроса 1
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
У Вас дата хранится вместе с временем.
Так почему не попробовать так:
andWhere( 'date >= 2018-04-01 00:00:00  AND date <= 2018-08-01 23:59:59')

Хотя лучше хранить время в timestamp, тип поля в таблице integer.

UPD.
<code lang="php">
andWhere(['>=',  'date', strtotime('2018-04-01 00:00:00')])->andWhere(['<=', 'date', strtotime('2018-08-01 23:59:59')]);
</code>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы