楼主: shawfee
20983 29

[求助]如何将字符型数据转化为日期时间型数据 [推广有奖]

11
fxf258 发表于 2009-3-27 13:25:00

在上面的cards语句后的数据末尾和run语句之间加";",即可

海象

12
rdzr 发表于 2009-3-27 16:39:00
以下是引用fxf258在2009-3-27 13:25:00的发言:

在上面的cards语句后的数据末尾和run语句之间加";",即可

加上';'后仍然无法通过,请看下面的运行结果:

data a;
input time $21;
cards;
2003-12-1 9:23:24
2003-12-3 14:12:09
2003-12-10 9:36:24
;
run;
data b;
  set a;
  dtime=input(time, anydtdtm21.);
  format dtime datetime20.;
run;
proc print data=b;
run;

下面是运行的结果:

                                      The SAS System     16:35 Saturday, March 27, 2009   3

                            Obs    time                   dtime

                             1                                .
                             2                                .
                             3                                .

13
shuiqiaobi 发表于 2009-3-29 10:06:00
学习了,谢谢

14
dmchuxue 发表于 2009-8-31 14:08:47
那个读入格式“anydtdtm21.”会不会是楼主用format picture自己定义的呢,我这里的sas也识别不出那个anydtdtm21.格式;

15
坐看云起时 在职认证  发表于 2009-8-31 15:00:47
input time$ 21改成input time$ 1-20这样就可以了

data a;
input time$ 1-20;
cards;
2003-12-1 9:23:24
2003-12-3 14:12:09
2003-12-10 9:36:24
;
run;

data b;
  set a;
  dtime=input(time, anydtdtm21.);
  format dtime datetime20.;
run;
proc print data=b;
run;

16
chenminzhi11205 发表于 2009-9-21 10:01:43
学习了啊~~~~

17
flutter88 发表于 2009-9-21 10:26:41
anydtdtm21.在V8中是没有的,在9.1.3中有

18
jhhh2000 发表于 2009-9-21 11:08:15
dhms也可以,但是SAS储存格式

19
shawfee 发表于 2009-11-26 02:09:49
re: rdzr

由于我的2003-12-1 9:23:24数据格式在DBF文件里的字符型,所以用我的程序在sas9.1.3中就可以解决。
多写各位的热心讨论与帮助!
愛是恆久忍耐,又有恩慈;愛是不嫉妒;愛是不自誇,不張狂,不作害羞的事,不求自己的益處,不輕易發怒,不計算人的惡,喜歡不義,只喜歡真理;凡事包容,凡事相信,凡事盼望,凡事忍耐;愛是永不止息。

20
caicaierfeng 发表于 2012-7-11 10:53:40
rdzr 发表于 2009-3-27 16:39
以下是引用fxf258在2009-3-27 13:25:00的发言:在上面的cards语句后的数据末尾和run语句之间加";",即可加上 ...
虽然是老久远的帖子了,但碰巧看到,我自己运行了一下。我是发现只要$21后面加一个点就可以了(加点会取整个长度,不加点只取了第21号位的字符,你会这样吗)。我的sas版本是9.1.3的。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-25 00:09