ב - SAS יש שלושה סוגים של משתנים המייצגים זמן – תאריך, שעה ותאריך-שעה. כפי שצוין בעבר כל שלושת הסוגים הללו הם למעשה משתנה נומרי (מספרי) אשר המספר אשר הוא מכיל מעוצב בצורה מיוחדת ע"י format כך שעבורנו בני האנוש המספר נראה כמו תאריך, שעה או תאריך-שעה.
השבוע נתחיל במשתנה תאריך, המכיל יום כלשהו בעבר או בעתיד. יש מספר דרכים להזין בקוד SAS תאריך מסוים. הדרך הפשוטה ביותר היא ע"י כתיבה של התאריך בצורה “ddMONyyyy”d כלומר מרכאות (אפשר כפולות או בודדת), היום בחודש (אפשר עם אפס מוביל ואפשר גם בלי), שם החודש באנגלית, למשל JAN עבור ינואר (אפשר באותיות גדולות או קטנות), השנה (ארבע או שתי ספרות, מומלץ ארבע, נרחיב על כך בעתיד), שוב מרכאות ואז האות d (אפשר גם D). לדוגמא:
data _null_;
x="01jan2020"d; * Double quotation;
y='02feb2020'D; * Single quotation;
put x=; * Just a number;
put y=; * Also just a number;
z=x/y; * Make no sense but completely valid code;
put z=;
run;
אפשרות אחרת להגדרת תאריך היא ע"י הפונקציה MDY אשר מקבלת שלושה פרמטרים, הראשון הוא החודש, השני הוא היום והשלישי הוא השנה - מכאן שמה – M(month)D(ay)Y(ear):
data _null_;
x=mdy(3, 15, 2020);
put x=;
run;
כדי שנוכל לראות את התאריך כתאריך אנחנו צריכים להצמיד format מתאים, כלומר format המיועד לעיצוב תאריכים, לשדה הנומרי שלנו שאנחנו יודעים שמכיל תאריך:
data _null_;
x="12mar2014"d;
y="5jan2018"d;
format x ddmmyy10. y yymmddd10.; * For example;
put x=;
put y=;
run;
דרך אגב, ספירת הימים של משתנה התאריך של SAS מתחיל ב – 01/01/1960 אשר מיוצג ע"י הערך 0 כך שתאריכים הקודמים ליום זה מיוצגים ע"י מספר שלילי.
חגי