mysql - 在cakephp 3中的mysql MONTH上生成单个字符串

标签 mysql cakephp-3.0

我想显示当前月份的数据。但是当我使用这个查询时,然后从查询生成额外的单个字符串。

$queryCurentMonth = $this->Bookings->find('all')
                ->where(["MONTH(Bookings.created)" => "MONTH(CURRENT_DATE())"]);

生成:

SELECT 
  *
FROM 
  `bookings` `Bookings` 
WHERE 
  MONTH(`Bookings`.`created`) = 'MONTH(CURRENT_DATE())'

This = 'MONTH(CURRENT_DATE())' ,它正在生成空白数据。我们如何完善这个查询。

最佳答案

MySQL 将您的 RHS 值视为字符串

MONTH(`Bookings`.`created`) = 'MONTH(CURRENT_DATE())'

'MONTH(CURRENT_DATE())' 不应包含单引号。相反,它应该是这样的

MONTH(`Bookings`.`created`) = MONTH(CURRENT_DATE())

尝试比较年份,因为函数 MONTH() 仅返回数字 1 到 12,查询将返回所有年份中一个月的所有记录,而不仅仅是当前年份。使用 MONTH()、YEAR() 来比较当前年份的月份。

MONTH(`Bookings`.`created`) = MONTH(CURDATE()) AND YEAR(`Bookings`.`created`) = YEAR(CURDATE())

关于mysql - 在cakephp 3中的mysql MONTH上生成单个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886654/

相关文章:

mysql - 如何在涉及 CONCAT 的 cakephp 3 中进行查询

PHP 数据库转储脚本 - 有任何问题吗?

mysql - 关于将 Join Query 转换为 Nested Subquery 的说明

php - 如何使用 PDO+PHP 使用第一个表中的主键从通过多对多关系连接的表中检索数据?

CakePHP 3 多个数据库

php - CakePHP 3.0 数据库修改

mysql - (Mysql : Proclaimed load difference between SMALLINT(4) en INT(4) real?

php - MySql如何将多个表中的数据只显示一次?

CakePHP 3.x : all routes to the plugin

cakephp - cakephp 3中的SUM查询不起作用