Frage

Mein Verständnis ist, dass mit Interbase v6 zu halten, Firebird 2.5 nicht das SQL-92 INTERVAL Schlüsselwort nicht unterstützt. Wenigstens schlägt so diese Referenz und meine wiederholten SQLCODE -104 Fehler versuchen INTERVALs zur Arbeit unter Firebird isql (1) .

zu bekommen

Wie also muss ich für die Unregelmäßigkeiten Konto in unserer bürgerlichen Zeitrechnung - Monate sind nicht gleichmäßig lang, noch sind Tage mit Zeitersparnis und Sprung Anpassungen, nicht das Jahr der Verwirrung zu erwähnen, usw. - bei der Durchführung von TIMESTAMP Arithmetik unter Firebird 2.1?

Wie kann ich leicht bestimmen „einen Monat früher“ oder „eine Woche später“ als eine gegebene TIMESTAMP? Wie wäre es „ein Tag später“ oder „zwei Stunden vor dem“?

War es hilfreich?

Lösung

Sie können verwenden die DateAdd () und DateDiff () integrierten Funktionen.
Alternativ dazu können Sie auch klassische Datumsberechnungen verwenden.

Andere Tipps

Wenn dies nicht in Firebird implementiert ist, vielleicht haben Sie es durch die Technologie tun könnte SQL Server aufrufen, und die daraus resultierende Zeitstempel erhalten? Ich weiß, kann es ganz leicht in Java oder .Net

getan werden

Sie können auch die Verwendung Funktionen der externen UDF fbudf.dll

Es gibt eine schöne externe UDF rFunc genannt: http://rfunc.sourceforge.net/ , es hat schöner Datumsfunktionen wie DaysBetween und IncDate (d, i1, i2, i3) und viele mehr

  1. subtrahiert 1 Tag ab Zeitstempel Datum in einer Schleife, bis Monat geändert hat.
  2. subtrahieren 1 Tag ab Zeitstempel Datum in einer Schleife bis zum Tag bis Sonntag hat sich geändert.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top