Sintaxe de escape do JDBC para a palavra chave fn fn (palavra chave de escape do JDBC) substring (função escalar do JDBC) mod (função escalar do JDBC) locate (função escalar do JDBC) abs (função escalar do JDBC) sqrt (função escalar do JDBC) concat (função escalar do JDBC) função TIMESTAMPADD função TIMESTAMPDIFF

A palavra chave fn permite utilizar várias funções escalares. O nome da função vem imediatamente após a palavra chave fn.

Sintaxe {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 .

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 .

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 .

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 .

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 .

Esta sintaxe permite o uso de qualquer função nativa do , e não apenas as listadas nesta seção. 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.

Intervalos válidos para TIMESTAMPADD e TIMESTAMPDIFF As funções TIMESTAMPADD e TIMESTAMPDIFF podem ser utilizadas para realizar aritmética com carimbos do tempo. Estas duas funções utilizam os seguintes intervalos válidos para as operações aritméticas:
  • SQL_TSI_DAY
  • SQL_TSI_FRAC_SECOND
  • SQL_TSI_HOUR
  • SQL_TSI_MINUTE
  • SQL_TSI_MONTH
  • SQL_TSI_QUARTER
  • SQL_TSI_SECOND
  • SQL_TSI_WEEK
  • SQL_TSI_YEAR
Exemplo de TIMESTAMPADD e TIMESTAMPDIFF {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.