CoDe SAS German

LesezeichenAbonnierenRSS-Feed abonnieren
Fay123
Obsidian | Level 7

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!

5 ANTWORTEN 5
CHoens
Calcite | Level 5
Wie wär´s denn mit
wher Stichtag = "31AUG2015"d
?

Also String mit Datumsmarkierung.
Sven_
Fluorite | Level 6

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.

mariusg
Obsidian | Level 7

where datepart(Stichtag) = "31AUG2015"d

 

Viele Grüße

Marius

Fay123
Obsidian | Level 7

wie blöd kann man sein .... Vielen Dank allen

FreelanceReinh
Jade | Level 19

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.

 

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

Diskussionsstatistiken
  • 5 Antworten
  • 5557 Aufrufe
  • 5 Kudos
  • 5 in Unterhaltung