\Cake\DatabaseFunctionsBuilder

Contains methods related to generating FunctionExpression objects with most commonly used SQL functions.

This acts as a factory for FunctionExpression objects.

Summary

Methods
Properties
Constants
rand()
sum()
avg()
max()
min()
count()
concat()
coalesce()
dateDiff()
datePart()
extract()
dateAdd()
dayOfWeek()
weekday()
now()
__call()
No public properties found
No constants found
_build()
_literalArgumentFunction()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

sum()

sum(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL SUM function.

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

avg()

avg(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL AVG function.

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

max()

max(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL MAX function.

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

min()

min(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL MIN function.

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

count()

count(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL COUNT function.

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

concat()

concat(array  $args, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a string concatenation

Parameters

array $args

List of strings or expressions to concatenate

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

coalesce()

coalesce(array  $args, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL COALESCE function.

Parameters

array $args

List of expressions to evaluate as function parameters

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

dateDiff()

dateDiff(array  $args, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing the difference in days between two dates.

Parameters

array $args

List of expressions to obtain the difference in days.

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

datePart()

datePart(string  $part, string  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns the specified date part from the SQL expression.

Parameters

string $part

Part of the date to return.

string $expression

Expression to obtain the date part from.

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

extract()

extract(string  $part, string  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns the specified date part from the SQL expression.

Parameters

string $part

Part of the date to return.

string $expression

Expression to obtain the date part from.

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

dateAdd()

dateAdd(string  $expression, string  $value, string  $unit, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Add the time unit to the date expression

Parameters

string $expression

Expression to obtain the date part from.

string $value

Value to be added. Use negative to subtract.

string $unit

Unit of the value e.g. hour or day.

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

dayOfWeek()

dayOfWeek(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL WEEKDAY function.

1 - Sunday, 2 - Monday, 3 - Tuesday...

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

weekday()

weekday(mixed  $expression, array  $types = array()) : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call to SQL WEEKDAY function.

1 - Sunday, 2 - Monday, 3 - Tuesday...

Parameters

mixed $expression

the function argument

array $types

list of types to bind to the arguments

Returns

\Cake\Database\Expression\FunctionExpression

now()

now(string  $type = 'datetime') : \Cake\Database\Expression\FunctionExpression

Returns a FunctionExpression representing a call that will return the current date and time. By default it returns both date and time, but you can also make it generate only the date or only the time.

Parameters

string $type

(datetime|date|time)

Returns

\Cake\Database\Expression\FunctionExpression

__call()

__call(string  $name, array  $args) : \Cake\Database\Expression\FunctionExpression

Magic method dispatcher to create custom SQL function calls

Parameters

string $name

the SQL function name to construct

array $args

list with up to 3 arguments, first one being an array with parameters for the SQL function, the second one a list of types to bind to those params, and the third one the return type of the function

Returns

\Cake\Database\Expression\FunctionExpression

_build()

_build(string  $name, array  $params = array(), array  $types = array(), string  $return = 'string') : \Cake\Database\Expression\FunctionExpression

Returns a new instance of a FunctionExpression. This is used for generating arbitrary function calls in the final SQL string.

Parameters

string $name

the name of the SQL function to constructed

array $params

list of params to be passed to the function

array $types

list of types for each function param

string $return

The return type of the function expression

Returns

\Cake\Database\Expression\FunctionExpression

_literalArgumentFunction()

_literalArgumentFunction(string  $name, mixed  $expression, array  $types = array(), string  $return = 'string') : \Cake\Database\Expression\FunctionExpression

Helper function to build a function expression that only takes one literal argument.

Parameters

string $name

name of the function to build

mixed $expression

the function argument

array $types

list of types to bind to the arguments

string $return

The return type for the function

Returns

\Cake\Database\Expression\FunctionExpression