Ich sitze jetzt schon seit Stunden erfolglos vor dem Problem ...
Ich habe Datumsfelder, die als Datetime vorliegen und möchte jetzt ein Datum abfragen. Mein Versuch mit "where Stichtag = 31AUG2015:00:00:00" war nicht wirklich erfolgreich und eigentlich würde ich auch lieber nur mit 31Aug15 abfragen. Funktioniert das irgendwie?
Dankeschön im voraus!
Vielleicht funktioniert so was wie:
where Stichtag like '31AUG15%';
In SAS liegt das Datum aber im Kern als Zahl, berechnet ab dem 01.01.1960, vor. Vielleicht dann besser umrechnen bzw. formatieren.
where datepart(Stichtag) = "31AUG2015"d
Viele Grüße
Marius
wie blöd kann man sein .... Vielen Dank allen
Prima, schon gelöst.
Für eventuelle spätere Leser: Die entscheidende Frage ist, ob es sich bei den "Datumsfeldern" um numerische Variablen handelt, die SAS-Datetime-Werte enthalten (Zahlen wie etwa 1768228898), oder um Character-Variablen, in denen Strings der Form "31AUG2015:00:00:00" gespeichert sind. Auf erstere lässt sich die DATEPART-Funktion anwenden, um das Datum (als SAS-Datumswert) zu extrahieren, wie von @mariusg vorgeschlagen (auch '31Aug15'd wäre auf der rechten Seite zulässig), für letztere eignen sich dagegen nur Character-Funktionen bzw. -Operatoren wie LIKE (Vorschlag von @Sven_) oder auch =:, wobei dann auf Feinheiten wie Groß-/Kleinschreibung oder 2- bzw. 4-stellige Jahresangabe zu achten ist. Alternativ lassen sich die beiden Arten von Werten per PUT- bzw. INPUT-Funktion (mit Datetime-Format bzw. -Informat) ineinander umrechnen und dann entsprechend anders abfragen.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!