SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: shiyiming
打印 上一主题 下一主题

【问题】文本数据导入SAS,datetime20.格式怎么老是失败呢?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
11#
 楼主| 发表于 2008-2-25 11:17:40 | 只看该作者

Re: 【问题】文本数据导入SAS,datetime20.格式怎么老是失败呢?

真的非常感谢各位。尤其是waterlwh:他(她)的代码非常好用。只是稍微有些bug,做了如下更改(红色部分):
[color=#00BF00:34i5jtcn]data a;
    infile datalines missover ;
    input (var1-var5) (:$10.) @45 var6 $8.  var7 :$10. @64 var8 $10. (var9 var10 var11) (:$10.)  ;[/color:34i5jtcn]
    [color=#FF0000:34i5jtcn]if var8="" then var8="00:00:00";[/color:34i5jtcn]
    [color=#00BF00:34i5jtcn]dtime1=input(put(input(var1,yymmdd10.),date9.)||' '||put(input(var2,time8.),time8.),datetime20.);
    dtime2=input(put(input(var3,yymmdd10.),date9.)||' '||put(input(var4,time8.),time8.),datetime20.);
    dtime3=input(put(input(var7,yymmdd10.),date9.)||' '||put(input(var8,time8.),time8.),datetime20.);
    dtime4=input(put(input(var9,yymmdd10.),date9.)||' '||put(input(var10,time8.),time8.),datetime20.);
    format dtime1-dtime4 datetime20.;
    cards;
    2007-1-9 14:15:05    2007-1-10 11:33:26  G           2007-1-12 14:48:00   2007-1-12 14:48:00   999999   
    2007-1-24 15:44:04   2007-1-29 14:02:48  G           2007-1-29 14:37:31   2007-1-29 14:37:31   999999   
    2007-1-16 15:42:50   2007-1-17 15:03:38  G  232376   2007-1-21            2007-1-21 12:15:45   999999   
    2007-12-27 17:13:38  2007-12-28 16:29:07 G           2007-12-28 17:04:23  2007-12-28 17:04:23  999999
    2007-11-29 14:06:46  2007-12-3 10:37:44  G           2007-12-3 11:04:23   2007-12-3 11:04:23   999999
    ;
    proc print;run;[/color:34i5jtcn]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
12#
 楼主| 发表于 2008-2-25 11:23:36 | 只看该作者

to tianwild

真的非常感谢你的答复。不过我以为SAS倒是考虑可以增加对我上传的这种日期时间格式的支持——其实,我的这个TXT文档是从某一个SQL数据库中导出的,我以为这种格式会比较常见——我能拿到的只能是这种数据格式了,只能用SAS去硬生生凑它。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
13#
 楼主| 发表于 2008-2-25 12:02:41 | 只看该作者

Re: 【问题】文本数据导入SAS,datetime20.格式怎么老是失败呢?

你好webber,作为探讨,时间为空值并不一定表示是00:00:00,不过奇怪的是sql中的日期格式是datetime格式,为什么文本文件中相应的时间变量会出现空值
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
14#
 楼主| 发表于 2008-2-25 12:23:43 | 只看该作者

to waterlwh

出现空值的原因不是很清楚。只能从入SQL库的流程上猜测:可能的原因是那行数据是后来补充、更新到数据库的。

还好,那个变量对时间的精确性不是很敏感,用00:00:00代替还是能够使用的。
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
15#
 楼主| 发表于 2008-2-25 18:42:08 | 只看该作者

Re: 【问题】文本数据导入SAS,datetime20.格式怎么老是失败呢?

没有太多时间尝试:是否也可以考虑自定义informat来实现? <!-- m --><a class="postlink" href="http://support.sas.com/kb/6/743.html">http://support.sas.com/kb/6/743.html</a><!-- m -->
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 15:45 , Processed in 0.068290 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表