数値定数、SAS日付定数、SAS時間定数、SAS日時定数の表現方法
数値定数、SAS日付定数、SAS時間定数、SAS日時定数の色々な書き方のご紹介です。
数値定数
title "数値定数" ; data TEST_NUM ; N = 1234 ; output ; N = -123 ; output ; N = +123 ; output ; N = 0010 ; output ; N = 0.123 ; output ; N = 1E10 ; output ; /* 指数表記 : 1 × 10の10乗 = 10000000000 */ N = 2.1E2 ; output ; /* 指数表記 : 2.1 × 10の 2乗 = 210 */ N = 1E-3 ; output ; /* 指数表記 : 2.1 × 10の-3乗 = 0.001 */ N = 2.5E-2 ; output ; /* 指数表記 : 2.5 × 10の-2乗 = 0.025 */ N = 0x ; output ; /* 16進数 : 10進数 0 */ N = 010x ; output ; /* 16進数 : 10進数 16 */ N = 0FFx ; output ; /* 16進数 : 10進数 255 */ N = 0FFFFx ; output ; /* 16進数 : 10進数 65535 */ N = . ; output ; /* 欠損値 */ N = .A ; output ; /* 特殊欠損値 A */ N = ._ ; output ; /* 特殊欠損値 _ */ run ; proc print data=TEST_NUM ; format N comma22.4 ; run ;
SAS日付定数
title "SAS日付定数" ; data TEST_DATE ; DATE = '01JAN2015'd ; output ; /* 2015/01/01 */ DATE = '31AUG2015'd ; output ; /* 2015/08/31 */ DATE = '28FEB25'd ; output ; /* 2025/02/28 (年の省略) */ DATE = '28FEB26'd ; output ; /* 1926/02/28 (年の省略) */ DATE = '10DEC2015 'd ; output ; /* 2015/12/10 (ブランクは無視されます) */ DATE = ' 10DEC2015'd ; output ; /* 2015/12/10 (ブランクは無視されます) */ DATE = ' 10DEC2015 'd ; output ; /* 2015/12/10 (ブランクは無視されます) */ run ; proc print data=TEST_DATE ; format DATE yymmdds10. ; run ;
SAS9.4 では、年を4桁ではなく2桁で表現すると、1926年から2025年の間の年となります。
参考: SAS9.4から、yearcutoff オプションのデフォルト値が 1926 になっていた
SAS時間定数
title "SAS時間定数" ; data TEST_TIME ; TIME = '12:34:56't ; output ; TIME = '01:02:03't ; output ; TIME = '24:00:00't ; output ; /* 0:00:00 */ TIME = '24:01:01't ; output ; /* 0:01:01 */ TIME = '12:00:00pm't ; output ; /* 12:00:00 (pm : 午後) */ TIME = '12:00:00am't ; output ; /* 0:00:00 (am : 午前) */ TIME = '00:01't ; output ; /* 0:01:00 */ TIME = '09:00:00.123't ; output ; /* 9:00:00.123 */ TIME = '28:00't ; output ; /* 4:00:00 */ TIME = '00:70't ; output ; /* 1:10:00 */ TIME = '00:00:80't ; output ; /* 0:01:20 */ run ; proc print data=TEST_TIME ; format TIME nltime12.3 ; run ;
SAS日時定数
title "SAS日時定数" ; data TEST_DATM ; DATM = '01JAN2015:12:34:56.789'dt ; output ; /* 2015/01/01 12:34:56.789 */ DATM = '01JAN2015:12:34:56'dt ; output ; /* 2015/01/01 12:34:56 */ DATM = '01JAN15:12:34'dt ; output ; /* 2015/01/01 12:34:00 */ DATM = '01JAN15:12:34am'dt ; output ; /* 2015/01/01 00:34:56 */ DATM = '2015-01-01T12:34:56Z'dt ; output ; /* 2015/01/01 12:34:56 (グリニッジ標準時) */ DATM = '2015-01-01T12:34:56+09:00'dt ; output ; /* 2015/01/01 12:34:56 (グリニッジ標準時+9時間) */ DATM = '2015-01-01T12:34:56.789+09:00'dt ; output ; /* 2015/01/01 12:34:56.789 (グリニッジ標準時+9時間) */ run ; proc print data=TEST_DATM ; format DATM nldatm23.3 ; run ;
(おまけ) 自分のための月の省略表記
JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
コメント
コメントを投稿