SQL Select nach aktuellem Monat filtern
Moin, ich möchte in Microsoft Access eine Abfrage erstellen, welche aus einer Tabelle einen Select machen soll und diese Abfrage aber nur die Inhalte ausgibt, welche in der Spalte "Month" den Aktuellen Monat drin stehen haben.
Leider weiß ich aber keine Variable die den aktuellen Monat drin stehen hat.
Leider weiß ich aber keine Variable die den aktuellen Monat drin stehen hat.
SELECT tblHotline.[Month], tblHotline.[Operations]
FROM tblHotline
where ([Month]) = "aktueller Monat";
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 42215254024
Url: https://administrator.de/forum/sql-select-nach-aktuellem-monat-filtern-42215254024.html
Ausgedruckt am: 22.12.2024 um 13:12 Uhr
15 Kommentare
Neuester Kommentar
Moin,
guck mal hier im Handbuch:
https://learn.microsoft.com/de-de/sql/t-sql/functions/getdate-transact-s ...
https://learn.microsoft.com/de-de/sql/t-sql/functions/month-transact-sql ...
hth
Erik
guck mal hier im Handbuch:
https://learn.microsoft.com/de-de/sql/t-sql/functions/getdate-transact-s ...
https://learn.microsoft.com/de-de/sql/t-sql/functions/month-transact-sql ...
hth
Erik
Und nun sollen alle raten?
Moin,
wobei du hier dann natürlich den November aus den Jahren 1900, 1901, ... 2020, 2021, 2022, 2023 erhalten wirst, daher wäre die Einschränkung auf das Jahr ggf. noch sinnvoll
SELECT tblHotline.[Month], tblHotline.[Operations]
FROM tblHotline
WHERE tblHotline.[Month] = DATEPART(month, CURRENT_TIMESTAMP);
wobei du hier dann natürlich den November aus den Jahren 1900, 1901, ... 2020, 2021, 2022, 2023 erhalten wirst, daher wäre die Einschränkung auf das Jahr ggf. noch sinnvoll
datepart() ist dein Freund, siehe @em-pie. Außerdem wäre wichtig welches Format deine Spalte "Month" hat. Wenn es eine Zeichenkette mit führender 0 ist, wird es vermutlich impliziet konvetiert von Access, ganz sicher bin ich aber nicht. Jedenfalls wäre dann eine explizite Konvertierung die etwas sauberere Lösung. Überhaupt komisch das du eine Spalte Month hast, wieso kein DATE oder DATETIME?
Moin,
Doch. Heißt da getdate(). Einfach mal auf die von mir geposteten Links klicken.
Liebe Grüße
Erik
Doch. Heißt da getdate(). Einfach mal auf die von mir geposteten Links klicken.
Liebe Grüße
Erik
Zitat von @DivineFaith:
in der spalte month stehen ausgeschriebene Monate drin, wie february oder march.
in der spalte month stehen ausgeschriebene Monate drin, wie february oder march.
SELECT tblHotline.[Month], tblHotline.Operations
FROM tblHotline
WHERE (tblHotline.[Month] = MonthName(Month(Date())));
Zitat von @erikro:
Moin,
Doch. Heißt da getdate(). Einfach mal auf die von mir geposteten Links klicken.
Deine Links beziehen sich auf Microsoft SQL, Access unterstützt nur einen Bruchteil davon.Moin,
Doch. Heißt da getdate(). Einfach mal auf die von mir geposteten Links klicken.
Zitat von @8030021182:
Zitat von @DivineFaith:
in der spalte month stehen ausgeschriebene Monate drin, wie february oder march.
in der spalte month stehen ausgeschriebene Monate drin, wie february oder march.
SELECT tblHotline.[Month], tblHotline.Operations
FROM tblHotline
WHERE (tblHotline.[Month] = MonthName(Month(Date())));
Ansich richtig. Bei Monatsnamen würde ich aber auf die Funktion verzichten, wegen möglichen Unterschieden in der Sprache. Dabei wäre auch zu prüfen, wie die Monatsnamen überhaupt erst in die Tabelle kommen, möglicherweise auch da irgendwann inkonsistent. Es ist Access, mach's am besten zu Fuss:
WHERE month(date()) = 1 AND spalte = 'Januar'
OR month(date()) = 2 AND spalte = 'Februar'
OR ...
Das man da lokalisierte Monatsnamen statt DateTime in ne Spalte schreibt ist ja schon gelinde gesagt krank 😀. Das würde ich als erstes mit einem Update der Tabelle beheben statt mit solchen krummen Workarounds zu hantieren. Just m2cent
Zitat von @8030021182:
Das man da lokalisierte Monatsnamen statt DateTime in ne Spalte schreibt ist ja schon gelinde gesagt krank 😀.
Das man da lokalisierte Monatsnamen statt DateTime in ne Spalte schreibt ist ja schon gelinde gesagt krank 😀.
Ach warum? Schön als String in ein X-Byte varchar.
Geht alles.
Datetime2