Dieses Skript erforscht die erweiterten Funktionen der PROC FORMAT Prozedur mit der PICTURE Anweisung. Es zeigt, wie strftime-ähnliche Direktiven (z.B. %Y, %m) verwendet werden, um Datetime-Werte zu formatieren. Es enthält Beispiele für die Standardformatierung, die Verwaltung von Rundungen, die Verwendung von 'datetime_util' zur Darstellung von Mitternacht als 24:00:00 und die Formatierung von Dauern (Intervalle).
Datenanalyse
Type : INTERNE_ERSTELLUNG
Alle Daten werden dynamisch in DATA _NULL_ Schritten mithilfe von Datetime-Literalen generiert.
1 Codeblock
PROC FORMAT
Erklärung : Erstellung eines Bildformats 'dbdate' zur Anzeige eines Datetime-Werts im Standardformat JJJJ-MM-TT:HH:MM:SS.
Kopiert!
title1 '12.2.1 Picture Formats';
title2 'Using Date Directives';
proc format;
picture dbdate
other = '%Y-%0m-%0d:%0H:%0M:%0S' (datatype=datetime);
run;
1
title1 '12.2.1 Picture Formats';
2
title2 'Using Date Directives';
3
PROC FORMAT;
4
picture dbdate
5
other = '%Y-%0m-%0d:%0H:%0M:%0S' (datatype=datetime);
6
RUN;
2 Codeblock
DATA STEP Data
Erklärung : Anwendung des Formats 'dbdate' in einem Data _NULL_ Schritt und über eine Makrovariable mit %sysfunc.
Kopiert!
data _null_;
now = '11sep2010:15:05:27'dt;
put now=;
put now= dbdate.;
call symputx('selldate',now);
run;
%put %sysfunc(putn(&selldate,dbdate.));
1
DATA _null_;
2
now = '11sep2010:15:05:27'dt;
3
put now=;
4
put now= dbdate.;
5
call symputx('selldate',now);
6
RUN;
7
8
%put %sysfunc(putn(&selldate,dbdate.));
3 Codeblock
PROC FORMAT
Erklärung : Definition von Formaten zur Anzeige des vollständigen (%B) oder abgekürzten (%b) Monatsnamens aus einem Datetime-Wert.
Kopiert!
proc format;
picture monthname
other = '%B ' (datatype=datetime);
picture monthabb
other = '%b ' (datatype=datetime);
run;
1
PROC FORMAT;
2
picture monthname
3
other = '%B ' (datatype=datetime);
4
picture monthabb
5
other = '%b ' (datatype=datetime);
6
RUN;
4 Codeblock
DATA STEP Data
Erklärung : Test der Anzeige der formatierten Monatsnamen.
Kopiert!
data _null_;
now = '11sep2010:15:05:27'dt;;
put now=;
put now= monthname.;
put now= monthname3.;
put now= monthabb.;
run;
1
DATA _null_;
2
now = '11sep2010:15:05:27'dt;;
3
put now=;
4
put now= monthname.;
5
put now= monthname3.;
6
put now= monthabb.;
7
RUN;
5 Codeblock
PROC FORMAT
Erklärung : Erstellung eines Formats mit der Option (round) zur Verwaltung der Rundung von Sekunden bei der Anzeige.
low - high = '%0d%b%0Y:%0H:%0M:%0S'(datatype=datetime)
4
;
5
RUN;
6 Codeblock
DATA STEP Data
Erklärung : Demonstration des Rundungseffekts auf Datetime-Werte, die der nächsten Sekunde oder dem nächsten Tag nahe kommen.
Kopiert!
data _null_;
datetime = '01apr2011:12:34:56.7'dt;
put datetime=myDayT.;
datetime = '01apr2011:23:59:59.7'dt;
put datetime=myDayT.;
run;
1
DATA _null_;
2
datetime = '01apr2011:12:34:56.7'dt;
3
put datetime=myDayT.;
4
datetime = '01apr2011:23:59:59.7'dt;
5
put datetime=myDayT.;
6
RUN;
7 Codeblock
PROC FORMAT
Erklärung : Verwendung von datatype=datetime_util, um die Anzeige von Mitternacht als '24:00:00' anstelle von '00:00:00' des nächsten Tages zu ermöglichen, nützlich in der Versorgungsbranche.
other='%n days %H hours %M minutes' (datatype=time);
4
RUN;
10 Codeblock
DATA STEP Data
Erklärung : Berechnung einer Differenz zwischen zwei Datetime-Werten und Anzeige des Ergebnisses als Dauer (Tage, Stunden, Minuten).
Kopiert!
data _null_;
start = '01jan2010:12:34'dt;
end = '01feb2010:18:36'dt;
diff = end - start;
put diff=durtest.;
run;
1
DATA _null_;
2
start = '01jan2010:12:34'dt;
3
END = '01feb2010:18:36'dt;
4
diff = END - start;
5
put diff=durtest.;
6
RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.