protected function getDateArithmeticIntervalExpression($date, $operator, $interval, $unit)
{
switch ($unit) {
case self::DATE_INTERVAL_UNIT_MONTH:
case self::DATE_INTERVAL_UNIT_QUARTER:
case self::DATE_INTERVAL_UNIT_YEAR:
switch ($unit) {
case self::DATE_INTERVAL_UNIT_QUARTER:
$interval *= 3;
break;
case self::DATE_INTERVAL_UNIT_YEAR:
$interval *= 12;
break;
}
return 'ADD_MONTHS(' . $date . ', ' . $operator . $interval . ')';
default:
$calculationClause = '';
switch ($unit) {
case self::DATE_INTERVAL_UNIT_SECOND:
$calculationClause = '/24/60/60';
break;
case self::DATE_INTERVAL_UNIT_MINUTE:
$calculationClause = '/24/60';
break;
case self::DATE_INTERVAL_UNIT_HOUR:
$calculationClause = '/24';
break;
case self::DATE_INTERVAL_UNIT_WEEK:
$calculationClause = '*7';
break;
}
return '(' . $date . $operator . $interval . $calculationClause . ')';
}
}