Neu Korrektes Datumsformat in SQL-Abfrage

Ahok

Aktives Mitglied
11. September 2023
165
8
Unten befinden sich Teile eines SQL-Mitschnitts einer Statistik-Auswertung. Daraus soll eine Workflow Mail werden, die einmal im Monat versendet wird. Im Mitschnitt ist schon jeweils ein spezielles Datum eingesetzt in den DECLARE Anweisungen. Wie kriege ich das Variabel hin, damit immer das Datum von heute und das Datum von heute+1 Monat genommen wird?

Ich habe schon damit rumgespielt und versucht und BETWEEN GETDATE() AND DATEADD(month, 1, GETDATE()) unten einzufügen (fünfte Zeile von unten), aber das scheint ein falsches Datumsformat unten einzufügen und die Abfrage kommt leer zurück. Die DECLARE Anweisung verstehe ich nicht ganz. Ist datetime eine Anweisung oder eine selbsterstellt Variable? Was bedeutet die 120?

Code:
DECLARE @von datetime = CONVERT(datetime, '2024-04-01 00:00:00', 120);
DECLARE @bis datetime = CONVERT(datetime, '2024-04-30 23:59:59', 120);

    SELECT
    ISNULL(NULLIF(KundenAdresse.cFirma, ''), 'Keine Firma') AS Filiale,
    SUM([Verkauf].[tAuftragPosition].fAnzahl) AS Verkaufsmenge,
    ISNULL( MONTH([Verkauf].[tAuftrag].dErstellt), 0) AS Monat

FROM
    [Verkauf].[tAuftragPosition]

LEFT JOIN [tArtikel] ON [tArtikel].kArtikel = [Verkauf].[tAuftragPosition].kArtikel
JOIN [Verkauf].[tAuftrag] ON [Verkauf].[tAuftrag].kAuftrag = [Verkauf].[tAuftragPosition].kAuftrag
JOIN [tkunde] ON [tkunde].kKunde = [Verkauf].[tAuftrag].kKunde
JOIN [tAdresse] AS KundenAdresse ON KundenAdresse.kKunde = [tkunde].kKunde AND (KundenAdresse.nStandard IN (1)) AND (KundenAdresse.nTyp IN (1))
    WHERE
([Verkauf].[tAuftrag].nType IN (1)) AND
    ([Verkauf].[tAuftrag].nStorno IN (0)) AND
    (ISNULL([tkunde].kKunde, 0) IN (65255,65418,65420,65421,66071,66653,83532)) AND
    (ISNULL([tArtikel].kHersteller, 0) IN (804)) AND
    ([Verkauf].[tAuftrag].dErstellt IS NOT NULL AND [Verkauf].[tAuftrag].dErstellt BETWEEN @von AND @bis)
GROUP BY
    ISNULL(NULLIF(KundenAdresse.cFirma, ''), 'Keine Firma'),
    ISNULL( MONTH([Verkauf].[tAuftrag].dErstellt), 0)
ORDER BY Verkaufsmenge DESC;
;
 
Zuletzt bearbeitet:

Christoph E.

Gut bekanntes Mitglied
Mitarbeiter
11. Oktober 2021
53
43
Die 120 im Zusammenhang mit CONVERT sorgt für eine spezielle Formatierung eines Datums als String im Format "yyyy-mm-dd hh:mi:ss", siehe [CAST und CONVERT (Transact-SQL)] (was hier aber eigentlich unnötig ist, da die Variable sowieso vom Typ DATETIME und nicht STRING ist).

Die DECLAREs erzeugen zwei Variablen @von und @bis, die dann unten im SQL verwendet werden.
Für Deinen Fall solltest Du am Besten den SQL unten unverändert lassen und stattdessen oben die gewünschten Datums im DECLARE auf die gewünschten Werte anpassen:

DECLARE @von datetime = DATEADD(MONTH, -1, GETDATE());
DECLARE @bis datetime = GETDATE();
(ich interpretiere das mal so, das Du die Daten aus dem letzten Monat anzeigen willst)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Ahok

Ahok

Aktives Mitglied
11. September 2023
165
8
Die 120 im Zusammenhang mit CONVERT sorgt für eine spezielle Formatierung eines Datums als String im Format "yyyy-mm-dd hh:mi:ss", siehe [CAST und CONVERT (Transact-SQL)] (was hier aber eigentlich unnötig ist, da die Variable sowieso vom Typ DATETIME und nicht STRING ist).

Die DECLAREs erzeugen zwei Variablen @von und @bis, die dann unten im SQL verwendet werden.
Für Deinen Fall solltest Du am Besten den SQL unten unverändert lassen und stattdessen oben die gewünschten Datums im DECLARE auf die gewünschten Werte anpassen:


(ich interpretiere das mal so, das Du die Daten aus dem letzten Monat anzeigen willst)
Herzlichsten Dank! Das funktioniert. Und ja zu deiner Interpretation, da wollte ich wohl in die Zukunft gucken 😄
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu SQL Server kein Mandant auswählbar und Dienst lässt sich nicht starten Installation von JTL-Wawi 0
Neu Ameise-Vorlage per SQL abrufen und Daten als Ergebnis erhalten JTL Ameise - Eigene Exporte 1
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Neu SQL Vartable für Reservierte Artikel gesucht User helfen Usern - Fragen zu JTL-Wawi 2
Neu Innerhalb einer Variable -SQL Abfrage- das Wort "fett" schreiben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 2
Neu SQL Eigener Export - Eigene Felder im Auftrag User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie finde ich per SQL heraus welche Aufträge auf Teillieferbar stehen? JTL Ameise - Eigene Exporte 1
Neu Microsoft SQL unter MS365 Installation von JTL-Wawi 2
Neu SQL Abfrage, 3. Mahnstufe User helfen Usern - Fragen zu JTL-Wawi 1
Neu Variable oder SQL zum Feld "Gewinn netto" (im Auftrag) Eigene Übersichten in der JTL-Wawi 9
Neu SQL Code zur Ausgabe des Verkaufspreis je Kundengruppe User helfen Usern 1
Neu MS SQL Server auf Windows vs Linux Starten mit JTL: Projektabwicklung & Migration 9
Beantwortet Hilfe bei SQL Abfrage erbeten User helfen Usern - Fragen zu JTL-Wawi 3
Neu SQL Abfrage - Sendungsnummern als Liste nach Datum Schnittstellen Import / Export 2
Neu DB: kPlattform eines Auftrages ändern (SQL) - Zwecks Lagerplatzreservierung User helfen Usern - Fragen zu JTL-Wawi 0
Neu SQL prozeduren mit #temp Tabellen Eigene Übersichten in der JTL-Wawi 28
Neu Ameise Export in SQL Abfrage umwandeln User helfen Usern - Fragen zu JTL-Wawi 11
Neu Ware direkt in ein Standardlager einbuchen per SQL StoreProcedure dbo.spWarenlagerEingangSchreiben Schnittstellen Import / Export 8
Neu List & Label Vorlagen: SQL Injection Warnung umgehen um Datenquelle zu ergänzen User helfen Usern - Fragen zu JTL-Wawi 12
Neu WAWI 1.9 mit SQL Server Developer User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL WAWI SQL Dokumentation offline Arbeitsabläufe in JTL-Wawi 2

Ähnliche Themen