Yii 2如何获取当天的所有数据

Alj*_*jay 5 php mysql activerecord yii yii2

基本上是 ProductOffer 表。\n迁移

\n\n
$this->createTable(\'product_offer\', [\n    \'id\'            => $this->primaryKey(),\n    \'product_id\'    => $this->bigInteger(20) . \' NOT NULL\',\n    \'customer_id\'   => $this->bigInteger(20),\n    \'coupon_code\'   => $this->string(),\n    \'offer\'         => $this->string(),\n    \'customer_name\' => $this->string(),\n    \'email_address\' => $this->string(),\n    \'phone_number\'  => $this->string(),\n    \'note\'          => $this->text(),\n    \'admin_note\'    => $this->text(),\n    \'status\'        => $this->tinyInteger(),\n    \'created\'       => $this->dateTime() . \' NOT NULL\',\n    \'modified\'      => $this->dateTime(),\n]);\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我在该表中有数据并创建了查询。

\n\n
$stamp = mktime(0, 0, 0);\n$testQuery = self::find()->where([\n    \'and\',\n    [\'=\', \'status\', self::STATUS_REJECTED],\n    [\'=\', \'product_id\', $this->product_id],\n    [\'=\', \'email_address\', $this->email_address],\n    [\'>\', \'created\', date(\'m-d-Y H:i:s\',$stamp)]\n]);\necho "<pre>";\n    print_r($testQuery->all());\necho "</pre>";\n
Run Code Online (Sandbox Code Playgroud)\n\n

结果是

\n\n
Array\n(\n    [0] => app\\models\\ProductOffer Object\n    (\n        [verifyCode] => \n        [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 48\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] =>  Rejected \n                [created] => 2018-05-16 04:38:28\n                [modified] => \n            )\n\n        [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 48\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] => 0\n                [created] => 2018-05-16 04:38:28\n                [modified] => \n            )\n\n        [_related:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_errors:yii\\base\\Model:private] => \n        [_validators:yii\\base\\Model:private] => \n        [_scenario:yii\\base\\Model:private] => default\n        [_events:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_eventWildcards:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_behaviors:yii\\base\\Component:private] => Array\n            (\n            )\n\n    )\n\n    [1] => app\\models\\ProductOffer Object\n    (\n        [verifyCode] => \n        [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 50\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] =>  Rejected \n                [created] => 2018-05-17 04:39:55\n                [modified] => \n            )\n\n        [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 50\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] => 0\n                [created] => 2018-05-17 04:39:55\n                [modified] => \n            )\n\n        [_related:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_errors:yii\\base\\Model:private] => \n        [_validators:yii\\base\\Model:private] => \n        [_scenario:yii\\base\\Model:private] => default\n        [_events:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_eventWildcards:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_behaviors:yii\\base\\Component:private] => Array\n            (\n            )\n\n    )\n\n    [2] => app\\models\\ProductOffer Object\n    (\n        [verifyCode] => \n        [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 51\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => test\n                [admin_note] => \n                [status] =>  Rejected \n                [created] => 2018-05-17 04:43:29\n                [modified] => \n            )\n\n        [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 51\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => test\n                [admin_note] => \n                [status] => 0\n                [created] => 2018-05-17 04:43:29\n                [modified] => \n            )\n\n        [_related:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_errors:yii\\base\\Model:private] => \n        [_validators:yii\\base\\Model:private] => \n        [_scenario:yii\\base\\Model:private] => default\n        [_events:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_eventWildcards:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_behaviors:yii\\base\\Component:private] => Array\n            (\n            )\n\n    )\n\n    [3] => app\\models\\ProductOffer Object\n    (\n        [verifyCode] => \n        [_attributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 55\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] =>  Rejected \n                [created] => 2018-05-17 04:51:57\n                [modified] => \n            )\n\n        [_oldAttributes:yii\\db\\BaseActiveRecord:private] => Array\n            (\n                [id] => 55\n                [product_id] => 111\n                [customer_id] => \n                [coupon_code] => \n                [offer] => 23\n                [customer_name] => Aljay Mallari\n                [email_address] => asrockg07@gmail.com\n                [phone_number] => 958568574\n                [note] => Test\n                [admin_note] => \n                [status] => 0\n                [created] => 2018-05-17 04:51:57\n                [modified] => \n            )\n\n        [_related:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_relationsDependencies:yii\\db\\BaseActiveRecord:private] => Array\n            (\n            )\n\n        [_errors:yii\\base\\Model:private] => \n        [_validators:yii\\base\\Model:private] => \n        [_scenario:yii\\base\\Model:private] => default\n        [_events:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_eventWildcards:yii\\base\\Component:private] => Array\n            (\n            )\n\n        [_behaviors:yii\\base\\Component:private] => Array\n            (\n            )\n\n    )\n);\n
Run Code Online (Sandbox Code Playgroud)\n\n

今天在我们的时区是 5/17/2018,我想获取今天创建的数据,但似乎我的查询不排除昨天创建的数据。

\n\n

我已经尝试表达这个

\n\n
[\'<\', \'created\', new Expression(\'NOW()\')]\n
Run Code Online (Sandbox Code Playgroud)\n\n

和这个

\n\n
$testQuery = self::find()->where([\n    \'and\',\n    [\'=\', \'status\', self::STATUS_REJECTED],\n    [\'=\', \'product_id\', $this->product_id],\n    [\'=\', \'email_address\', $this->email_address],\n    [\'>\', \'created\', new Expression(date(\'m-d-Y H:i:s\', $stamp))]\n]);\necho "<pre>";\n    print_r($testQuery->all());\necho "</pre>";\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在我收到 SQL 错误

\n\n
\n

数据库异常 \xe2\x80\x93 yii\\db\\Exception SQLSTATE[42000]: 语法错误或\n 访问冲突: 1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的\n 手册,了解在第 1 行附近\'00:00:00)\' 使用的正确\n 语法正在执行的 SQL 是:\n SELECT * FROM product_offerWHERE ( status= 0) AND ( product_id=\n \'111\') AND ( email_address= \'asrockg07@gmail.com\') AND ( created>\n 05-17-2018 00:00:00)

\n
\n

Tim*_*sen 6

您可以将原始 SQL 内容与WHERE字符串格式的调用一起使用,也可以将两个WHERE调用组合在一起。综合起来,我们可以尝试以下操作:

$testQuery = self::find()->where([
    'and',
    ['=', 'status', self::STATUS_REJECTED],
    ['=', 'product_id', $this->product_id],
    ['=', 'email_address', $this->email_address]
])
->andWhere('created >= CURDATE()');
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想限制今天任何时间创建的记录,我认为您需要使用CURDATE此处,它对应于今天的午夜。