[firebase-br] TRUNC em SQL - Alternativas
Daniel / Tecnobyte
temp em tecnobyte.com.br
Qui Dez 16 16:58:25 -03 2004
Atualmente eu conheço duas formas de truncar um valor em Firebird:
1. UDF
2. CAST(CAST(Valor AS VARCHAR(30)) AS INTEGER)
A primeira forma depende de biblioteca externa e por isto evito usá-la para
não criar dependências. A segunda forma requer uma codificação muito
desajeitada e por isto também não vejo como uma forma muito boa.
Até onde sei o Firebird não dispõe de uma função interna para isto. Será que
em versões futuras isto vai existir? O Ansi SQL não prevê uma forma padrão
para truncar valores numéricos?
NOTA!
Até o atual momento minhas aplicações sempre trabalham com arredondamento e
fazer isto no Firebird é moleza. No entanto a legislação do ECF mudou e
agora obriga o uso de truncamento nos cálculos. Arredondamento não é mais
permitido, especialmente em equipamentos novos.
Então para atender à legislação devo alterar meus sistemas para trabalhar
também com truncamento. Será uma tarefa árdua, pois uso bastantes campos
calculados no DB, envolvendo multiplicações, etc. O problema principal agora
é a falta de uma função interna no Firebird para fazer o truncamento. Será
que a melhor alternativa é UDF mesmo?
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
Mais detalhes sobre a lista de discussão lista