从 mysql datetime cakephp 按年或月过滤

use*_*368 1 php cakephp cakephp-1.3 php-5.3

我在具有date字段的 CakePHP 应用程序的数据库中有一个表。该字段的数据类型是 DATETIME。所以它在表中是这样显示的:

2013-08-10 13:34:45
Run Code Online (Sandbox Code Playgroud)

我想在 find() 查询中添加一个条件以按年或按月过滤。要按年份过滤,我可以使用 LIKE 条件执行以下操作:

$condition = array(
    'MyModel.date LIKE' => '%2013%'
);
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能按月过滤呢?上面的方法不起作用,因为我可以将这样的东西作为日期:

2013-12-11 11:11:11
Run Code Online (Sandbox Code Playgroud)

如果我 LIKE '%11%',我的结果将是错误的,因为前一个日期的月份实际上是 11 月(如果您住在加拿大,则是 12 月)。那么,如何在表格的日期字段上添加条件以按正确的月份进行过滤?

在此先感谢您的帮助

Han*_*nky 5

WHERE MONTH(date)=6    // June
Run Code Online (Sandbox Code Playgroud)

您还可以使用该YEAR功能

WHERE YEAR(date) =2013
Run Code Online (Sandbox Code Playgroud)

参考文献