Ich versuche, Firebird abzufragen, um Daten vom letzten Monat vom Tag 1 bis zum letzten Tag (30 oder 31 abhängig vom Monat) zu erhalten. Wenn ich den Code unten verwende, gibt es verschobene Daten von aktuell, zum Beispiel Tag 11/14/2017 bis 12/13/2017.Erhalten Sie Daten des letzten Monats vom ersten Tag bis zum letzten Tag in Firebird
Der Code:
WHERE DATE >= DATEADD(MONTH,-1, CURRENT_TIMESTAMP(2)) AND DATE<= 'TODAY'
Die gewünschte Ausgabe ist 2017.11.01 - 11/30/2017
Was ist der richtige Weg, es zu tun?
Für Firebird anstelle von 'addmonth' verwenden Sie [' dateadd (-1, month, ...)]] (https://www.firebirdsql.org/file/documentation/reference_manuals/fblangref25-en/html/ fblangref25-functions-scalarfuncs.html # fblangref25-functions-scalarfuncs-dateadd) (oder 'dateadd (-1 Monat bis ...)') –
Hi Larry. Perfekt ! Es funktionierte genau so, wie ich es brauchte. Danke vielmals ! :) –
Und ich habe gerade bemerkt, dass ich die falsche Reihenfolge der Argumente für die kommagetrennte Variante in meinem Kommentar hatte. Scheint du hast es richtig gemacht;) Ein leichtes "Problem" ist, wenn Zeitstempel verglichen werden, es verwendet die aktuelle Zeit (also 2017-11-01 21:06 - 2017-11-30 21:06 und nicht 00:00 - 23 : 59) –