Vormonat
Hallo Zusammen,
ich benötige in meinen Tabellen, dass jeweils der aktuelle Monat (Juni 2018 )
und der Vormonat automatisch (Mai 2018) eingetragen wird.
Den aktuellen Monat erhalte ich mit Monat := format(now(), "MMMM YYYY")
Gibt es eine einfache Möglichkeit den Vormonat zu bekommen?
VG
7 Antworten
-
Etwa so:
—-
Vormonat:=format (date (year(today()),month(today())-1,1),"MMMM YYYY")
—-
Leo
-
Funktioniert gut. Vielen Dank!
-
Guten Tag
ich habe auch zum Filtern des Vormonates eine Frage - vor allem jetzt über Jahresende. Ich möchte für die Corona-Testung die Zeitgutschrift für Mitarbeitende, welche aus der Freizeit zum Test erscheinen addieren - und zwar für die Zeitabrechnung anfangs Monat. Hier meine Formel:
let myName := Name;
let myGeb := 'Geb._Datum';
let myMon := month(today())-1;
let myCnt := cnt(select Testung where Teilnehmer.Name = myName and Teilnehmer.'Geb._Datum' = myGeb and Freizeit = 1 and month(TestDatum) = myMon);
myCnt * 'Arbeitsweg Min' / 3600000 + myCntWenn ich -1 weglasse erhalte ich schön den aktuellen Monat gefiltert, doch den Vormonat kriege ich nicht hin.
Vielen Dank, freundliche Grüsse
Roger Schwab
-
Hallo Roger, die Funktion month() gibt einfach nur einen numerischen Wert zwischen 1 und 12 zurück, ohne Bezug zu einem bestimmten Jahr. Um den Vormonat kalendarisch korrekt zu ermitteln, muss man deshalb mit einem Datumswert arbeiten. Aus diesem wiederum lässt sich mit yearmonth() eine Kombination aus Jahr und Monat erzeugen, die man zur Filterung heranziehen kann. Die beiden betreffenden Zeilen könnten dann bspw. so aussehen:
[...]
let myMon := yearmonth(date(year(today()), month(today()) - 1, 1));let myCnt := cnt(select Testung where Teilnehmer.Name = myName and Teilnehmer.'Geb._Datum' = myGeb and Freizeit = 1 and yearmonth(TestDatum) = myMon);
[...] -
sensationell, herzlichen Dank :-)
noch eine Verständnisfrage: -1 ist klar, doch was macht die 1 am Schluss?
-
Die Funktion date() benötigt drei numerische Parameter: Jahr, Monat und Tag. Da der Tag in diesem Fall aber keine Bedeutung hat, wird einfach irgendein Wert eingesetzt, in diesem Fall halt die 1 für den Ersten des Monats. Es würde aber auch jede andere Zahl bis 28 funktionieren.
-
Vielen Dank :-)
Content aside
- vor 4 JahrenZuletzt aktiv
- 7Antworten
- 1317Ansichten