Yii framework 2.0 ActiveRecord日期不在两个日期之间



使用Yii框架2.0时,我有一个数据库表,其中列为"from_date""to_date"。我想选择并统计所有记录,其中:

  1. 今天不在从日期到日期之间。甚至不等于这些日期(!($from_date<=$today)&amp!($today<=$to_date))

  1. from_date 为NULL,to_date为空。因为在某些记录中,这些日期是空的,所以也需要对它们进行选择和计数

我有一个扩展ActiveRecord类的模型,所以我可以使用以下代码来检索数据:

ModelClass::find()-where('big>small')->andWhere('1<2')->orWhere('3>1')->count();

我试着阅读Yii2.0的文档,但不知道如何使用not BETWEEN OR EQUAL NULL。

对于null,可以使用以下代码:

ModelClass::find()->where([
    'from_date' => null,
    'to_date' => null,
])

从指南中,您可以轻松地链接where属性:http://www.yiiframework.com/doc-2.0/yii-db-query.html#where%28%29-详细

在反查询之前必须传递参数'NOT',例如:

$query->andWhere(['not',['id'=> null]]);

你可以试试这个

  ->andWhere(['NOT', 
        ['AND', 
        ['>=', 'fromTime', (new DateTime($from_date))->format('H:i:s')],
        ['<=', 'toTime', (new DateTime($to_date))->format('H:i:s')]
        ]
    ]);

最新更新