SAS - วันที่และเวลา

วันที่ใน SAS เป็นกรณีพิเศษของค่าตัวเลข แต่ละวันจะมีการกำหนดค่าตัวเลขที่เฉพาะเจาะจงโดยเริ่มตั้งแต่วันที่ 1 มกราคม 1960 วันที่นี้กำหนดค่าวันที่ 0 และวันที่ถัดไปจะมีค่าวันที่เป็น 1 เป็นต้นไป วันก่อนหน้าจนถึงวันนี้แสดงด้วย -1, -2 และอื่น ๆ ด้วยแนวทางนี้ SAS สามารถแสดงวันที่ในอนาคตและวันที่ใดก็ได้ในอดีต

เมื่อ SAS อ่านข้อมูลจากแหล่งข้อมูลจะแปลงข้อมูลที่อ่านเป็นรูปแบบวันที่เฉพาะตามที่ระบุรูปแบบวันที่ ตัวแปรในการจัดเก็บค่าวันที่จะถูกประกาศด้วยข้อมูลที่เหมาะสมที่จำเป็น วันที่ส่งออกจะแสดงโดยใช้รูปแบบข้อมูลเอาต์พุต

SAS Date Informat

ข้อมูลต้นฉบับสามารถอ่านได้อย่างถูกต้องโดยใช้ข้อมูลวันที่ที่ระบุดังที่แสดงด้านล่าง ตัวเลขท้ายข้อมูลระบุความกว้างต่ำสุดของสตริงวันที่ที่จะอ่านโดยสมบูรณ์โดยใช้ข้อมูล ความกว้างที่น้อยกว่าจะให้ผลลัพธ์ที่ไม่ถูกต้อง ด้วย SAS V9 จะมีรูปแบบวันที่ทั่วไปanydtdte15. ซึ่งสามารถประมวลผลการป้อนวันที่ใดก็ได้

วันที่ป้อนข้อมูล ความกว้างของวันที่ Informat
03/11/2014 10 mmddyy 10.
03/11/14 8 mmddyy 8.
11 ธันวาคม 2555 20 worddate20.
14 มี.ค. 2554 9 วันที่ 9.
14 มี.ค. 2554 11 วันที่ 11.
14 มี.ค. 2554 15 anydtdte15.

ตัวอย่าง

โค้ดด้านล่างแสดงการอ่านรูปแบบวันที่ต่างๆ โปรดทราบว่าค่าผลลัพธ์ทั้งหมดเป็นเพียงตัวเลขเนื่องจากเราไม่ได้ใช้คำสั่งรูปแบบใด ๆ กับค่าผลลัพธ์

DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10.   ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;

เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้

รูปแบบเอาต์พุตวันที่ SAS

วันที่หลังจากอ่านแล้วสามารถแปลงเป็นรูปแบบอื่นได้ตามที่ต้องการโดยการแสดงผล สิ่งนี้ทำได้โดยใช้คำสั่งรูปแบบสำหรับประเภทวันที่ พวกเขาใช้รูปแบบเดียวกับข้อมูล

ตัวอย่าง

ในตัวอย่างด้านล่างวันที่ถูกอ่านในรูปแบบเดียว แต่แสดงในรูปแบบอื่น

DATA TEMP;
INPUT  @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format  DOJ1 date11.  DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998 
;
PROC PRINT DATA = TEMP;
RUN;

เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้