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 に答える