[email protected] April

[email protected]
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
THEMA: „SAS DATUMSWERTE: ERSTELLEN EIGENER
DATUMSFORMATE LEICHT GEMACHT"
EVA-MARIA KEGELMANN
[email protected] HERZLICH WILLKOMMEN BEI [email protected]
Moderation
Training
Anne K. Bogner-Hamleh
Eva-Maria Kegelmann
SAS Institute GmbH
Education Consultant
SAS Institute GmbH
Sr Technical Training Consultant
Xing-Profil:
http://www.xing.com/profile/AnneKatrin_BognerHamleh?key=0.0
Hinweise zum Ablauf des Webinars:
• Teilnehmer sind automatisch “stumm” geschaltet
• Sie können Nachrichten an den Moderator senden / Fragen stellen
• die Veranstaltung wird aufgezeichnet
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
LERNZIELE
•
SAS DATUMSWERTE: ERSTELLEN EIGENER
DATUMSFORMATE LEICHT GEMACHT
Verstehen, wie SAS Datumswerte definiert sind
• Wissen, wie Datumswerte länderspezifisch dargestellt werden können
• Lernen, wie man ein benutzerdefiniertes Datumsformat erstellen kann
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DATUMS- UND ZEITWERTE HISTORIE
•
Datums- und Zeitwerte sind im SAS System besondere numerische Werte.
•
Die “SAS-Zeitrechnung” beginnt am 01. Januar 1960.
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DEUTSCHE DATUMSFORMATE: GEHEN NOCH, ABER
Format
Angezeigter Wert
DEUDFDE.
17854
18Nov2008
DEUDFWDX.
17854
18. November 2008
DEUDFWKX.
17854
Dienstag, 18. November 2008
DEUDFDN.
17854
3
DEUDFDWN.
17854
Dienstag
DEUDFMN.
17854
November
DEUDFMY.
17854
Nov08
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
5
Gespeicherter
Wert
[email protected] NLS DATUMSFORMATE SIND JETZT AKTUELL
SAS National LanguageSupport (NLS) Formate konvertieren Datumsangaben in die in anderen
Ländern üblichen Formate
Einstellung der Sprache: OPTIONS LOCALE=xxx;
Format
Locale
Beispiel
English_UnitedStates
January 01, 1960
German_Germany
01. Januar 1960
English_UnitedStates
January
German_Germany
Januar
English_UnitedStates
Fri, Jan 01, 60
German_Germany
Fr, 01. Jan 60
English_UnitedStates
Friday
German_Germany
Freitag
NLDATEw.
NLDATEMNw.
NLDATEWw.
NLDATEWNw.
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
6
[email protected] EINSTELLUNG DES GEBIETSSCHEMAS: LOCALE=
Nicht zu verwechseln mit einer SAS-Sprachversion!
Stellt verschiedene länderspezifische Konventionen und Spracheinstellungen zur
Verfügung
Umfasst:
•
Regeln für die Sortierung von Zeichenketten
•
Formatierung von
•
•
•
•
•
Datumswerten, z. B.19.3.2014 (Deutschland), 03/19/14 (USA)
Zeitangaben (12-Std. mit AM/PM oder 24-Std.)
Zahlen (Dezimalpunkt oder –komma)
Währungskennzeichen
Papiergröße (A4, letter,…)
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] EINSTELLUNG DES GEBIETSSCHEMAS: LOCALE=
Systemoption LOCALE=
setzt länderspezifische Konventionen und Spracheinstellungen
•
Beispiel: options locale=german_germany;
•
Standardeinstellung: LOCALE= English_UnitedStates
Weitere ausgewählte Werte:
•
SAS Name
Kurzbezeichnung
German_Austria
de_AT
German_Germany
de_DE
German_Liechtenstein
de_LI
German_Luxembourg
de_LU
German_Switzerland
de_CH
Alias
German bzw. de
Andere Systemoptionen wie ENCODING, DFLANG, DATESTYLE und PAPERSIZE
basieren auf LOCALE= , falls nicht explizit gesetzt!
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DIE SYSTEMOPTION DFLANG
DFLANG=
Sprache für internationale
Ein- und Ausgabeformate für Datumswerte
Der Standardwert ist ENGLISH.
Weitere ausgewählte Werte:
Finnish
Spanish
Swedish
French
Swiss_French
German
Swiss_German
Beispiel: options dflang=german;
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] BENUTZERDEFINIERTE DATUMSFORMATE
•
Kein passendes SAS Standard-Datumsformat vorhanden?
•
Erstellen Sie ein eigenes Datumsformat mit
PROC FORMAT und der PICTURE-Anweisung.
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] SZENARIO
•
Das Einstellungsdatum der Angestellten soll im Format DD-MMMYYYY
angezeigt werden, z.B. 02-SEP2014
•
Dafür gibt es kein SAS Standard-Ausgabeformat.
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] PROC FORMAT - PICTURE-ANWEISUNG
Die PICTURE-Anweisung in PROC FORMAT definiert ein Template für
Datenwerte.
PROC FORMAT;
PICTURE formatname
value-range-set-1 <(picture-1-option(s) )>;
RUN;
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DATUMSFORMATE: DATATYPE-OPTION
Die DATATYPE-Option für die PICTURE-Anweisung gibt an, dass das Format
für einen SAS-Datums-, SAS-Zeit-bzw. SAS-Datumszeit-Wert verwendet wird.
PROC FORMAT;
PICTURE name
value-range-set-1 (DATATYPE=DATE | TIME | DATETIME);
RUN;
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DIREKTIVEN FÜR EINE PICTURE-ANWEISUNG
Direktive = % plus Buchstabe
Legen fest, welche Datumskomponenten wie angezeigt werden.
Groß-/Kleinschreibung hat unterschiedliche Bedeutung!
Beispiel:
proc format;
picture myfmt
low-high = '%0d-%b%Y '(datatype=date);
run;
Ergebnis: 02-SEP2014
Sprache: entspricht der LOCALE= Systemoption
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] DIREKTIVEN FÜR DIE PICTURE-ANWEISUNG
Direktive
Bedeutung
Beispiel
%a
Wochentag, abgekürzt
Wed
%A
Wochentag
Wednesday
%b
Monatsname, abgekürzt
Jan
%<n>B
Monatsname (Optional: n=Anzahl Zeichen)
January
%d
Tag im Monat (%0d: Mit führender Null)
1 bzw. 01
%e
Tag im Monat 2-stellig, mit führendem Blank
" 1“ bis 31
%m
Monat als Zahl (%0m: Mit führender Null)
1 bzw. 01
%n
Monat als Zahl 2-stellig mit führendem Blank
" 1“ bis 12
%q
Quartal als Zahl
1 bis 4
%Q
Quartal als Text
Quarter 1
%u
Wochentag als Zahl (Montag=1– Sonntag=7)
1 bis 7
%V
KW (%0V: mit führender Null).
1 bzw. 01bis 53
%y %Y
Jahr, 2-stellig bzw. 4-stellig
14 bzw. 2014
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] LÄNGE DES ANGEZEIGTEN DATUM-FORMATES
Achtung:
verwenden Sie die DEFAULT= option, damit die Breite der Anzeige groß genug
ist! (bei Verwendung der DATATYPE= Option)
Ohne DEFAULT= :
Breite entspricht der Anzahl Zeichen rechts vom =.
Beispiel: proc format;
picture myfmt (default = 50)
low-high = '%0d-%b%Y'(datatype=date);
run;
Ohne Default= wäre hier die Standardbreite = 8
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] BENUTZERDEFINIERTES DATUMSFORMAT - BEISPIEL
proc format;
picture myfmt (default= 50)
low-high = '%0d. %B %Y - KW %V - %Q'
(datatype=date);
run;
•
Ergebnis: 18. August 2014 - KW 34 - 3. Quartal
•
Voraussetzung:
options locale=german_germany;
•
Demo: EOT_Datumsformate_erstellen
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] BENUTZERDEFINIERTE DATUMSFORMATE VERWENDEN
Verwenden Sie genau wie bei Standardformaten die FORMAT-Anweisung, um
ein Format auf eine bestimmte SAS-Variable anzuwenden.
Allgemeine Form der FORMAT-Anweisung:
FORMAT variable(s) format.;
Beispiel:
proc print data=ia.empdata;
format orderdate myformat.;
run;
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] BENUTZERDEFINIERTES DATUMSFORMAT – BEISPIEL 2
Darstellung von Datumswerten mit unterschiedlichen
Detaillierungsgraden / Formatierungen
proc format;
value schachteldate
low
-'31DEC1990'd = [year4.]
'01Jan1991'd-'31DEC1991'd =
[nldateyq.]
'01JAN1992'd- high
=
[nldateym.];
run;
Ergebnis:
Demo: EOT_Datumsformat_versch_Intervalle.sas
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] BENUTZERDEFINIERTES DATUMSFORMAT – BEISPIEL 3
Darstellung von Datumswerten mit überlappenden
Bereichen: MULTILABEL-Option in der Value-Anweisung
proc format library = work;
value ueberlapp (multilabel)
'01jan1991'd - '31mar1991'd
'01apr1991'd - '30jun1991'd
'01jul1991'd - '30sep1991'd
'01oct1991'd - '31dec1991'd
'01jan1991'd - '30jun1991'd
'01jul1991'd - '31dec1991'd
run;
=
=
=
=
=
=
'1. Quartal'
'2. Quartal'
'3. Quartal'
'4. Quartal'
'Halbjahr I'
'Halbjahr II';
Ergebnis:
Demo: EOT_Datumsformat_überlappende_Bereiche.sas
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
FRAGEN?
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] VIELEN DANK FÜR IHRE TEILNAHME
Interesse an weiterem Austausch?
•
Diskutieren Sie mit uns in der XING-Gruppe
Business Analytics mit SAS
•
Sprechen Sie uns direkt an:
[email protected]
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
[email protected] NÄCHSTES [email protected]
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
FOLIEN ZUM DOWNLOAD UNTER
WWW.SAS.DE/LUNCHTIME
WIE HAT IHNEN UNSER WEBINAR GEFALLEN?
C op yr i g h t © 2 0 1 2 , S A S I n s t i t u t e I n c . A l l r i g h t s r es er v e d .
www.SAS.com