1

我编写了以下查询来返回员工已休的所有休假。

它应该做 的是返回当前年份的值并忽略其余部分。

它所做的是返回表中的所有值,包括与前几年有关的值。

$sqlBuilder = new SQLQBuilder();

    $arrFields[0] = '`leave_date`';
    $arrFields[1] = '`leave_status`';

    $arrTable = "`leave_table`";

    $selectConditions[1] = "`employee_id` = '".$employeeId."'";
    $selectConditions[2] = "`leave_date` >= '".date('Y')."-01-01'";

    $query = $sqlBuilder->simpleSelect($arrTable, $arrFields, $selectConditions, $arrFields[0], 'ASC');

    $dbConnection = new DMLFunctions();

    $result = $dbConnection -> executeQuery($query);

    $leaveArr = $this->_buildObjArr($result);

    return $leaveArr;

谁能弄清楚我在这里做错了什么?

4

2 回答 2

2

这很简单

$selectConditions[2] = "year(`leave_date`) = year(now())";
于 2012-07-13T06:34:18.523 回答
0

用这个

where 
    leave_date>=current_date()-interval dayofyear(current_date())-1 day and
    leave_date<current_date()-interval dayofyear(current_date())-1 day+interval 1 year
于 2012-07-13T06:31:39.030 回答