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;
เมื่อดำเนินการโค้ดด้านบนเราจะได้ผลลัพธ์ดังต่อไปนี้