我有如下格式化的日期時間變量:SAS - 轉換/格式化變量日期時間
27AUG2014:08:56:26.959136
我怎樣才能重新格式化,以便它看起來像這樣:
2014-08-27:08:56:26.959136
我有如下格式化的日期時間變量:SAS - 轉換/格式化變量日期時間
27AUG2014:08:56:26.959136
我怎樣才能重新格式化,以便它看起來像這樣:
2014-08-27:08:56:26.959136
看起來像我發現了一個解決方案:
data want;
set have;
format newdt E8601DT26.6;
newdt=currdt;
put currdt= newdt=;
run;
這裏是我可以得到的最接近 - 技術上他們不是格式,他們正在改變val如果這樣做可能不符合您的要求。看起來好像圖片格式指令缺少毫秒的指令,所以使用自定義格式只會讓你感到滿意。
proc format;
picture test low-high = '%Y-%0m-%0d:%0H:%0M:%0S' (datatype = datetime) ;
run ;
data x;
* THIS GETS US EVERYTHING EXCEPT THE DECIMAL PLACE;
x = datetime();
put x= 22.5;
put x= datetime22.5;
put x= test.;
* TO GET THE DECIMAL THERES A BIT OF MUCKING AROUND;
* SIMPLY CONCATENATE THE DECIMAL ONWARDS TO THE FORMATTED VALUE;
length y decimal_as_string $30;
decimal_as_string = cats(put(x,22.5));
y = cats( put(x,test.),
substr(decimal_as_string, index(decimal_as_string,'.'))
);
put y=;
run;
下面是圖片格式是如何工作的一個環節:
http://www2.sas.com/proceedings/forum2007/026-2007.pdf
編輯:
其實用@ user2941280的格式,我們更加接近,速度更快。這將做到這一點:
data _null;
length my_date $30;
my_date = translate(put(datetime(),E8601DT26.6),':','T');
put my_date=;
run;