Firebird 2.1 aritmética TIMESTAMP e intervalos civiles
-
22-09-2019 - |
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 INTERVAL
s 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"?
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
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
- restar un día desde la fecha de marca de tiempo en un bucle hasta meses ha cambiado.
- restar un día desde la fecha de marca de tiempo en un bucle hasta el día ha cambiado al domingo.