diff --git a/src/Database/Dialect/SqlserverDialectTrait.php b/src/Database/Dialect/SqlserverDialectTrait.php index e2e2aedd745..a8916970d73 100644 --- a/src/Database/Dialect/SqlserverDialectTrait.php +++ b/src/Database/Dialect/SqlserverDialectTrait.php @@ -155,7 +155,18 @@ protected function _transformFunctionExpression(FunctionExpression $expression) $expression->name('')->type(' +'); break; case 'DATEDIFF': - $expression->add(['day' => 'literal'], [], true); + $hasDay = false; + $visitor = function($value) use (&$hasDay){ + if ($value === 'day') { + $hasDay = true; + } + return $value; + }; + $expression->iterateParts($visitor); + + if (!$hasDay) { + $expression->add(['day' => 'literal'], [], true); + } break; case 'CURRENT_DATE': $time = new FunctionExpression('GETUTCDATE');