WEBINAR@LUNCHTIME 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 WEBINAR@LUNCHTIME HERZLICH WILLKOMMEN BEI WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 WEBINAR@LUNCHTIME 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 WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME 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 . WEBINAR@LUNCHTIME NÄCHSTES WEBINAR@LUNCHTIME 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
© Copyright 2024 ExpyDoc