全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2843 5
2013-05-02
经常有时间和日期读入为一个变量,例如:
Package_ship_date

26DEC11:12:57:38
03JAN12:14:43:32
03JAN12:11:37:40
我想把时间和日期分开为四个变量:
Package_ship_date Package_ship_hour Package_ship_minute Package_ship_second
26DEC11 12 57 38
03JAN12 14 43 32
03JAN12 11 37 40

我不知道在SAS里怎么做,我是output到txt,然后重新读入为四个变量,但是这样好麻烦啊。

请教高手,在SAS里怎么做把时间和日期分开呢?
谢谢
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-5-2 23:37:22
DATEPART function + TIMEPART Function
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-3 02:17:12
Eternal0601 发表于 2013-5-2 23:37
DATEPART function + TIMEPART Function
谢谢。这两个function很好用。
但是有时侯需要sort by hour。怎么能把 hour 取出来?比如 12:57:38,我就想把12 取出来,而不是 format hour., format hour. 得到的是 hour 但是真实值仍然是那个时间在SAS里的数值。

有没有一个function可以直接把 Date 或者 Time 直接变成 text format?比如 12:57:38 直接转换成 text format 12:57:38?
谢谢。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-3 08:08:50
用substr试试
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-3 08:45:07
data test;
input datetime datetime.;
format datetime datetime21.;
   format  Package_ship_date date9.;
         length  Package_ship_hour Package_ship_minute Package_ship_second  $3.;
          Package_ship_date  = datepart(datetime);
          Package_ship_hour  = put(hour(datetime), 2.)||':';
          Package_ship_minute  = put(minute(datetime),2.)||':';
          Package_ship_second = put(second(datetime),2.)||':';
datalines;
26DEC11:12:57:38
03JAN12:14:43:32
03JAN12:11:37:40
;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-3 08:55:47
chilianlin 发表于 2013-5-3 02:17
谢谢。这两个function很好用。
但是有时侯需要sort by hour。怎么能把 hour 取出来?比如 12:57:38,我 ...
用Hour,Minute,Second函数就可以取时分秒了
但注意只能用于时间型变量
如果想用在日期时间型变量,则需要先用TIMEPART提取时间型
这个与Year,Month,Day函数类似
我个人认为既然SAS的日期时间都是数值型
就要用数值型的函数去做,不要用字符函数去处理
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群