A palavra chave fn permite utilizar várias funções escalares. O nome da função vem imediatamente após a palavra chave fn.
{fn chamadaFunção}
onde chamadaFunção é uma das seguintes funções:
concat (ExpressãoCaractere, ExpressãoCaractere)
Cadeia de caracteres formada anexando a segunda cadeia à primeira; se uma das cadeias for nula, o resultado será nulo. {fn concat (ExpressãoCaractere, ExpressãoCaractere) é equivalente à sintaxe nativa { ExpressãoCaractere || ExpressãoCaractere }. Para obter mais detalhes deve ser consultado Concatenação.
sqrt (ExpressãoPontoFlutuante)
Raiz quadrada do número de ponto flutuante.
{fn sqrt (ExpressãoPontoFlutuante)} é equivalente à sintaxe nativa SQRT(ExpressãoPontoFlutuante). Para obter mais detalhes deve ser consultado SQRT.
abs (ExpressãoNumérica)
Valor absoluto do número. {fn abs(ExpressãoNumérica)} é equivalente à sintaxe nativa ABSOLUTE(ExpressãoNumérica). Para obter mais detalhes deve ser consultado ABS ou ABSVAL.
locate(ExpressãoCaractere, ExpressãoCaractere [, posiçãoInício] )
Posição na segunda ExpressãoCaractere da primeira ocorrência da primeira ExpressãoCaractere, procurando a partir do início da segunda expressão caractere, a menos que esteja especificada a posiçãoInício. {fn locate(ExpressãoCaractere,ExpressãoCaractere [, posiçãoInício])} é equivalente à sintaxe nativa LOCATE(ExpressãoCaractere, ExpressãoCaractere [, PosiçãoInício] ). Para obter mais detalhes deve ser consultado LOCATE.
substring(ExpressãoCaractere, posiçãoInício, comprimento)
A cadeia de caracteres formada pela extração de comprimento caracteres da ExpressãoCaractere a partir da posiçãoInício; a posição começa em 1.
mod(tipo_inteiro, tipo_inteiro)
MOD retorna o resto (módulo) do argumento 1 dividido pelo argumento 2. O resultado será negativo apenas se o argumento 1 for negativo. Para obter mais detalhes deve ser consultado MOD.
TIMESTAMPADD( intervalo, expressãoInteira, expressãoCarimboTempo )
Utiliza a função TIMESTAMPADD para adicionar o valor de um intervalo a um carimbo do tempo. A função aplica o inteiro ao carimbo do tempo especificado baseado no tipo de intervalo, e retorna a soma como um novo carimbo do tempo. Pode ser realizada subtração no carimbo do tempo utilizando inteiros negativos.
Deve ser observado que TIMESTAMPADD é uma função do JDBC com escape, sendo acessível apenas utilizando a sintaxe de função com escape do JDBC.
Para realizar TIMESTAMPADD em datas e horas, é necessário convertê-los para carimbo do tempo. As datas são convertidas em carimbos do tempo colocando 00:00:00.0 no campo das horas. As horas são convertidas em carimbos do tempo colocando a data corrente no campo da data.
Deve ser observado que não deve ser colocada uma coluna data/hora dentro de uma função aritmética de carimbo do tempo na cláusula WHERE, porque o otimizador não usará nenhum índice na coluna.
TIMESTAMPDIFF( intervalo, expressãoCarimboTempo1, expressãoCarimboTempo2 )
Utiliza a função TIMESTAMPDIFF para descobrir a diferença entre dois valores de carimbo do tempo no intervalo especificado. Por exemplo, a função pode retornar o número de minutos entre dois carimbos do tempo especificados.
Deve ser observado que TIMESTAMPDIFF é uma função do JDBC com escape, sendo acessível apenas utilizando a sintaxe de função com escape do JDBC.
Para realizar TIMESTAMPDIFF em datas e horas, é necessário convertê-los em carimbo do tempo. As datas são convertidas em carimbos do tempo colocando 00:00:00.0 no campo das horas. As horas são convertidas em carimbos do tempo colocando a data corrente no campo da data.
Deve ser observado que não deve ser colocada uma coluna data/hora dentro de uma função aritmética de carimbo do tempo na cláusula WHERE, porque o otimizador não usará nenhum índice para a coluna.
{fn TIMESTAMPADD( SQL_TSI_MONTH, 1, CURRENT_TIMESTAMP)}
Retorna um valor carimbo do tempo um mês após o carimbo do tempo corrente.
{fn TIMESTAMPDIFF(SQL_TSI_WEEK, CURRENT_TIMESTAMP, timestamp('2001-01-01-12.00.00.000000'))}
Retorna o número de semanas entre agora e a hora especificada em 1 de janeiro de 2001.