Pergunta

Meu entendimento é que, de acordo com o Interbase V6, o Firebird 2.5 não suporta o SQL-92 INTERVAL palavra -chave. Pelo menos, então sugere esta referência E meus erros repetidos SQLCode -104 tentando obter INTERVALs para trabalhar sob o Firebird's ISQL (1).

Como, então, considero as irregularidades em nosso acerto de contas civis do tempo - os meses não são uniformemente longos, nem dias com tempo de poupança e ajustes de salto, sem mencionar o ano de confusão etc. - ao executar TIMESTAMP aritmética sob Firebird 2.1?

Como posso determinar facilmente "um mês antes" ou "uma semana depois" do que um dado TIMESTAMP? Que tal "um dia depois" ou "duas horas antes"?

Foi útil?

Solução

Você pode usar o DataAdd () e Datediff () funções internas.
Alternativamente, você também pode usar clássico data aritmética.

Outras dicas

Se isso não for implementado no Firebird, talvez você possa fazê -lo através da tecnologia chamando seu servidor SQL e obter o registro de data e hora resultante? Eu sei que isso pode ser feito com bastante facilidade em java ou .net

Você também pode usar o funções do UDF externo fbudf.dll

Há um bom UDF externo chamado Rfunc: http://rfunc.sourceforge.net/, tem boas funções de data como DaysBetween e Incdate (d, i1, i2, i3) e muito mais

  1. Subtrair um dia da data do timestamp em um loop até que o mês mude.
  2. Subtrair um dia da data de data e hora em um loop até que o dia mude para domingo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top