Pregunta

Mi entendimiento es que, de acuerdo con Interbase v6, Firebird 2.5 no es compatible con la palabra clave INTERVAL SQL-92. Al menos, por lo que sugiere esta referencia y mi SQLCODE -104 repetido errores tratando de llegar a INTERVALs trabajo bajo de Firebird isql (1) .

Entonces, ¿cómo hacer que dar cuenta de las irregularidades en nuestros cálculos civil del tiempo - meses no son uniformemente larga, ni son días con los ajustes de ahorro de tiempo y bisiestos, por no mencionar el año de la confusión, etc. - cuando se realiza la aritmética TIMESTAMP bajo Firebird 2.1?

¿Cómo puedo determinar fácilmente "un mes antes" o "una semana después" de un TIMESTAMP dado? ¿Qué hay de "un día después" o "dos horas antes"?

¿Fue útil?

Solución

Se puede utilizar el DateAdd () y DateDiff () funciones integradas.
Como alternativa, también puede usar clásica aritmética de fechas .

Otros consejos

Si esto no se lleva a cabo en el pájaro de fuego, tal vez usted podría hacerlo a través de la tecnología de llamar a su servidor SQL, y obtener la marca de tiempo resultante? Sé que puede ser fácilmente hecho en Java o .Net

También puede utilizar las funciones del fbudf.dll UDF externa

Hay un bonito UDF externa llamada rFunc: http://rfunc.sourceforge.net/ , se tiene funciones de fecha y agradables como DaysBetween IncDate (d, i1, i2, i3) y muchos más

  1. restar un día desde la fecha de marca de tiempo en un bucle hasta meses ha cambiado.
  2. restar un día desde la fecha de marca de tiempo en un bucle hasta el día ha cambiado al domingo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top