2016-11-29 4 views
0

Ich wähle die Daten aus einer Tabelle mit einer Datumszeichenkette aus. Ich möchte alle Zeilen auswählen, die einen Aktualisierungszeitstempel größer oder gleich heute haben.Verwendung des aktuellen Datums in SAS

Der einfachste Weg, den ich mir vorstellen kann, ist das heutige Datum in die Zeichenfolge zu setzen, und es funktioniert gut.

WHERE UPDATE_DTM> '29NOV2016: 12: 00'DT;

Allerdings, wenn ich etwas wie das heutige Datum oder Systemdatum setzen möchte, was soll ich sagen? Ich habe heute() verwendet, aber es hat alle Zeilen in der Tabelle zurückgegeben. Ich bin mir nicht sicher, ob es ist, weil heute() in SAS sich auf das Datum 1/1/1960 bezieht? Ich versuchte auch & sysdate, aber es gab eine Fehlermeldung zurück, als ob es eine Datumsumwandlung erfordert.

WHERE UPDATE_DTM> HEUTE();

Irgendwelche Ideen? Ihre Gedanken werden sehr geschätzt!

+0

'today()' bezieht sich nicht auf 1/1/1960, es sei denn, Sie führen es auf einem Rechner aus, der auf 1/1/1960 eingestellt ist ... – Joe

Antwort

3

DATETIME() ist das Datetime-Äquivalent von TODAY() (enthält aber die aktuelle Uhrzeit). Sie können auch dhms(TODAY(),0,0,0) verwenden, wenn Sie effektiv Mitternacht möchten (oder, für Ihr Beispiel oben, dhms(TODAY(),12,0,0), um heute Mittag zu bekommen).

+0

Vielen Dank! Es hat sehr geholfen. Ich dachte darüber nach, eine andere Variable BEG_DATE = TODAY() zu setzen und dann das Datumsformat zu konvertieren. Der von Ihnen zur Verfügung gestellte ist viel einfacher und funktioniert großartig! –

Verwandte Themen