2016-11-02 7 views
0

Wenn ich versuche, Sysdate/Today() für meine PROC SQL QUERY-Bedingung wie Table_Date + 60 > Today() zu verwenden, gibt es einen Zahlenwert 20560 zurück. Können Sie bitte beraten, wie kann ich diese Zahl in ein Datum umwandeln.SAS SYSDate-Format in PROC SQL

+1

Es ist nicht klar, was Sie fragen (Bedingungen wie diese zu wahren/falsch bewerten, nicht eine Zahl, auch Sie scheinen über ein Datum zu sprechen, kein Datetime). Können Sie ein Beispiel für Ihren Code angeben? –

Antwort

0

Wenn Sie über die Art und Weise sprechen die Daten in der Tabelle angezeigt wird, nach Ihrer proc sql; Abfrage, versuchen Sie ein Format der Anwendung wie folgt:

proc sql; 
create table want as 
    select Table_Date + 60 as my_date_col format=date9. 
    from have 
    where Table_Date + 60 > Today(); 

SAS speichert Daten wie die Anzahl der Tage seit dem 1. Januar 1960 Um diese Nummer als "lesbares Datum" anzuzeigen, können Sie eine der folgenden Nummern date formats gemäß der obigen Syntax format= anwenden.

Beachten Sie, dass Datumsformate sich von Datum/Uhrzeit-Formaten unterscheiden, die auf einem zugrunde liegenden Wert der Anzahl der Sekunden seit 01.01.1960 basieren.

Wenn Sie nicht möchten, Ihr Datum zu einem Datetime konvertieren (gemäß dem Wortlaut der Frage) Sie können einfach den Wert von 24 (Stunden) multiplizieren, 60 (Minuten) und 60 (Sekunden) wie folgt: