我想显示当前月份的数据。但是当我使用这个查询时,然后从查询生成额外的单个字符串。
$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/