Ich konnte die Lösung nicht finden, die den ersten und letzten Tag des Vormonats mit Zeitstempel angibt. Hoffe das hilft anderen. Wenn es bereits eine Lösung für dieses Problem gibt, entschuldige ich mich.
Hier ist die Lösung.
SELECT DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0) as FirtDayPreviousMonthWithTimeStamp,
DATEADD(ss, -1, DATEADD(month, DATEDIFF(month, 0, getdate()), 0)) as LastDayPreviousMonthWithTimeStamp
Dies gibt Folgendes zurück, wenn currentdate = '2012-7-31'
Ergebnis: 2012-06-01 00:00:00.000 2012-06-30 23:59:59.000
Dies gibt Folgendes zurück, wenn currentdate = '2012-1-1'
Ergebnis: 2011-12-01 00:00:00.000 2011-12-31 23:59:59.000
sql-server
datetime
Jay S.
quelle
quelle
Antworten:
quelle
-1
inDATEDIFF
wirft und Fehler , dassThe arguments to the following function are not valid: DATEDIFF
Erster Tag der aktuellen Woche.
Letzter Tag der aktuellen Woche.
Erster Tag der letzten Woche.
Letzter Tag der letzten Woche.
Erster Tag der nächsten Woche.
Letzter Tag der nächsten Woche.
Erster Tag des laufenden Monats.
Letzter Tag des aktuellen Monats.
In diesem Beispiel ist das Datum, an dem nur gearbeitet wird, 31. und die verbleibenden Tage nicht.
Erster Tag des letzten Monats.
Letzter Tag des letzten Monats.
Erster Tag des nächsten Monats.
Letzter Tag des nächsten Monats.
Erster Tag des laufenden Jahres.
Letzter Tag des laufenden Jahres.
Erster Tag des letzten Jahres.
Letzter Tag des letzten Jahres.
Erster Tag des nächsten Jahres.
Letzter Tag des nächsten Jahres.
quelle
quelle
Lösung
Um die von Ihnen angeforderten Werte tatsächlich zu berechnen, fügen Sie Folgendes in Ihre SQL ein.
Beachten Sie, dass es früher eingefügt werden muss als alle Anweisungen, die auf die Parameter verweisen. Ab diesem Zeitpunkt können Sie jedoch in Ihrem Code auf @FirstDayOfLastMonth und @LastDayOfLastMonth verweisen .
Beispiel
Lassen Sie uns einen Code in Aktion sehen:
Führen Sie den obigen Code aus, um die folgende Ausgabe zu erzeugen:
Hinweis: Beachten Sie , dass das heutige Datum für mich der 12. September 2016 ist .
Gemeinsame Datumsparameter
Willst du mehr?
Fügen Sie in SQL Folgendes ein, um einen umfassenderen Bereich praktischer datumsbezogener Parameter einzurichten:
Es ist am sinnvollsten, es früher einzuschließen, vorzugsweise oben in Ihrer Prozedur oder SQL-Abfrage.
Einmal deklariert, können die Parameter an einer beliebigen Stelle in Ihrem Code referenziert werden, so oft Sie sie benötigen.
Beispiel
Lassen Sie uns einen Code in Aktion sehen:
Führen Sie den obigen Code aus, um die folgende Ausgabe zu erzeugen:
Wenn Ihr Land fehlt, liegt es daran, dass ich den Code dafür nicht kenne. Es wäre sehr hilfreich und dankbar, wenn Sie diese Antwort bearbeiten und eine neue Spalte für Ihr Land hinzufügen könnten.
Danke im Voraus.
Hinweis: Beachten Sie , dass das heutige Datum für mich der 12. September 2016 ist .
Verweise
Weitere Informationen zum internationalen Datumsstandard ISO8601 finden Sie unter folgendem Link:
Weitere Informationen zum internationalen ODBC-Datumsstandard finden Sie unter folgendem Link:
Folgen Sie diesem Link, um die Liste der Datumsformate anzuzeigen, in denen ich gearbeitet habe:
Weitere Informationen zum Datentyp DATETIME finden Sie unter folgendem Link:
quelle
quelle
Ab SQL2012 wird eine neue Funktion namens aufgerufen
EOMONTH
. Mit dieser Funktion können der erste und der letzte Tag des letzten Monats leicht gefunden werden.quelle
Ich habe die folgende Logik in SSRS-Berichten verwendet.
quelle
Sie können den ersten und letzten Tag des Vormonats (mit Zeitstempel) in SQL Server durch Ausführen abrufen
quelle
Nehmen Sie ein Basisdatum, das der 31. eines Monats ist, z. B. '20011231'. Verwenden Sie dann das
folgende Verfahren (ich habe unten 3 identische Beispiele angegeben, nur der @ dt-Wert unterscheidet sich).
quelle
Hier ist ein ziemlich direkter und dynamischer Weg. Subtrahieren Sie für den letzten Tag des letzten Monats den aktuellen numerischen Tag vom heutigen Datum. Verwenden Sie für den ersten Tag des letzten Monats denselben Code. Wiederholen Sie einfach das Subtrahieren des numerischen Tages vom vorherigen Ergebnis und addieren Sie 1.
quelle
So erhalten Sie das erste Datum des letzten Monats:
So erhalten Sie das letzte Datum des letzten Monats:
quelle
Ich habe diese Lösung noch nicht vorgestellt. Dies ist meine Präferenz für die einfachere Lesbarkeit:
quelle
Dies ist der einfachste Weg, den ich kenne, um den ersten Tag des Vormonats zu erhalten:
Schritt 1: Verschieben Sie Daten nach Postgres
Schritt 2:
quelle