我正在尝试创建一个get语句函数,我在定义日期范围时遇到了一些问题。
数据将通过以下格式的get方法传递:?year = yyyy& month = mm 表格的相关列有日期时间类型( 2012-02-01 )。
我检查了 TimeHelper 类,尤其是TimeHelper::daysAsSql($begin, $end, $fieldName, $timezone = NULL)
,但我不确定它是否适用于此情况。
我在想是否可以使用年份和月份这两个变量以Y-m的格式创建日期,然后在检索数据的条件中使用它,但我确信有更有效和正确的方法。有人可以帮忙吗?
$user_id = $Client['Client']['id'];
$year = $this->request['url']['year'];
$month = $this->request['url']['month'];
//$date_created = date('Y-m');
if (!empty($user_id) && (!empty($date_created))) {
$Reports = $this->Report->find('all', array(
'fields' => array('amount','currency','date_created','invoice_no'),
'conditions' => array(
'Report.client_id'=> $user_id,
'Report.date_created >=' => $date_created,
'Report.date_created <=' => $date_created
),
)
);
答案 0 :(得分:1)
MONTH (dateColumn)返回表示指定日期月份的整数。
年(dateColumn)返回表示指定日期年份的整数。
InCakephp用作
$user_id = $Client['Client']['id'];
$year = $this->request['url']['year'];
$month = $this->request['url']['month'];
//$date_created = date('Y-m');
if (!empty($user_id) && (!empty($date_created))) {
$Reports = $this->Report->find('all', array(
'fields' => array('amount','currency','date_created','invoice_no'),
'conditions' => array(
'Report.client_id '=> $user_id,
'MONTH(date_created ) >='=> $month,
'YEAR(date_created ) <=' => $year
),
)
);