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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.