Veröffentlicht am :
Datenmanagement INTERNE_ERSTELLUNG

Bildformate (Picture Formats) und Datumsdirektiven

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
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!
1title1 '12.2.1 Picture Formats';
2title2 'Using Date Directives';
3PROC 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!
1DATA _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!
1PROC 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!
1DATA _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.
Kopiert!
1PROC FORMAT;
2 picture myDayT (round)
3 low - high = '%0d%b%0Y:%0H:%0M:%0S'(datatype=datetime)
4 ;
5RUN;
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!
1DATA _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.
Kopiert!
1PROC FORMAT;
2 picture abc (default=19)
3 other='%Y-%0m-%0d %0H:%0M:%0S' (datatype=datetime_util);
4 RUN;
8 Codeblock
DATA STEP Data
Erklärung :
Vergleich der Anzeige für exakte Mitternacht und eine Sekunde nach Mitternacht mit dem speziellen Format.
Kopiert!
1DATA _null_;
2 x = '01nov2008:00:00:00'dt; put x=abc.;
3 x = '01nov2008:00:00:01'dt; put x=abc.;
4 RUN;
9 Codeblock
PROC FORMAT
Erklärung :
Formatierung einer Dauer (Differenz zwischen zwei Daten) unter Verwendung der Direktive %n zur Zählung der Gesamtzahl der Tage.
Kopiert!
1PROC FORMAT;
2 picture durtest(default=27)
3 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!
1DATA _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.