Frage zu date() Funktion

hab1cht

Erfahrenes Mitglied
Hallo,
ich arbeite in der schule gerade mit Access und dazu folgende Frage:
Es soll eine Namensliste aller Mitarbeiter mit einer Betriebszugehörigkeit von 25 und mehr Jahren erstellt werden.

Wie kann ich das realisieren?
Kann ich mit 'date() - 25 Year' oder so in der Art etwas anfangen?

Vielen Dank im Voraus.

Mfg
hab1cht
 
Moin hab1cht,

für den unwahrscheinlichen Fall, dass Du die Lösung noch nicht selbst gefunden hast:

Du kannst Datumsdiffenzen in Access mit mehreren Varianten bzw. Strategien ermitteln.

Eigentlich wird wie in anderen SQL-Dialekten immer die DateDiff()-Funktion genommen.

Wenn es bei längeren Statements auf die "Selbstdokumention" und Lesbarkeit ankommt, dann aber auch oft mit "Lesehilfen" wie den Funktionen Month(), Year() etc.

Die Varianten a und b in Aktion:
Code:
Select *
FROM JVA
where datediff( "yyyy", Strafantrittsdatum, date()) >25;

--bzw.
Select *
from SantaFu
and year(now()) -year(Einbuchtungsdatum) >50

Zum Vergleich mit dem heutigen Datum die Funktionen date() oder now() verwenden.

Gruss
Biber
 
Na ja, hab1icht,

deshalb ist ER ja auch Lehrer und ich muss arbeiten....*gg

Komplizierter als der Schnipsel oben muss das Statement nur dann werden, wenn es auf tagesgenaue Vergleiche ankäme.
Ich habe ja das Kriterium "mehr als 25 Jahre" recht locker gesehen.
Mir würden beispielsweise, wenn ich am 31.12.2000 meine Query abschicke, alle Sätze durch die Lappen gehen, die auch "über 25 Jahre" dabei sind, nämlich alle aus dem Jahr 1975, vom 1. Januar an.

Also gebe ich Deinem Lehrer Recht: <i>eigentlich</i> muss die Abfrage erweitert werden auf
Code:
Jahresdifferenz > 50 ODER 
                 (Jahresdifferenz =50 UND 
                 (          (Monat(Heute)<(Monat(damals)) 
                             ODER
                          ( Monat(Heute)=Monat(damals) UND Tag(heute) < Tag(damals))
                  )

Wie war denn seine Lösung?

Gruss
Biber2
 
SELECT (Date()-[Eintritt]) AS BZ
FROM mitarbeiter
WHERE ((((Date()-[Eintritt]))>25*365))

des hat mein lehrer geschrieben
 
Hallo!

Dann ist Dein Lehrer aber relativ ungenau was die Berechnung angeht.
Denn in 25 Jahren kommen auch einige Schaltjahre (also 366 Tage) vor. ;)

Gruss Dr Dau
 
Zurück