楼主: 厌学ing
15342 13

[问答] sas 时间 文本转日期格式的问题 [推广有奖]

11
Bugjay 发表于 2013-4-20 22:09:44 |只看作者 |坛友微信交流群
date_new = INPUT(date,YYMMDD10.);
FORMAT date_new YYMMDD10.;

使用道具

12
Eternal0601 发表于 2013-4-20 23:20:15 |只看作者 |坛友微信交流群
厌学ing 发表于 2013-4-20 21:39
yymmdd后面的那个数字是什么意思啊,
我有一个数据集按你说的方法出来的是错的,其他的成功的变成了日期 ...
data _null_;
        string1='1990-12-19'; *no leading blank;
        date1=input(string1,yymmdd10.);
        put date1=  yymmdd10.;

        string2=' 1990-12-19';  *only one leading blank;
        date2=input(string2,yymmdd10.);
        put date2=  yymmdd10.;

                string3='1990-12-20';  *no leading blank;
        date3=input(string3,yymmdd10.);
        put date3=  yymmdd10.;


        string4=' 1990-12-20'; *only one leading blank;
        date4=input(string4,yymmdd10.);
        put date4=  yymmdd10.;

                string42='  1990-12-20'; *two leading blank--- right by using strip function;
        date42=input(strip(string42),yymmdd10.);
        put date42=  yymmdd10.;



                string43='  1990-12-20'; *two leading blank--- wrong;
        date43=input(string43,yymmdd10.);
        put date43  yymmdd10.;

run;
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
厌学ing + 1 + 1 + 1 感谢~
webgu + 40 + 40 + 2 热心帮助其他会员

总评分: 经验 + 40  论坛币 + 40  学术水平 + 1  热心指数 + 3  信用等级 + 1   查看全部评分

使用道具

13
Eternal0601 发表于 2013-4-20 23:23:45 |只看作者 |坛友微信交流群
Eternal0601 发表于 2013-4-20 23:20
data _null_;
        string1='1990-12-19'; *no leading blank;
        date1=input(string1,yymmdd ...
yymmdd后面的数字表示读入这个变量的长度,你这个数据集出现问题,应该你的这个数据集的时间变量的属性跟其他几个数据集不同,主要是值前面有一个空格造成的,用个strip函数可以解决

使用道具

14
omnijust 发表于 2017-2-6 14:52:58 |只看作者 |坛友微信交流群
webgu 发表于 2013-4-20 10:09
A simple example to use input function and yymmdd10. format:

data _null_;
你这可真是误人子弟,put给送到log,你让他咋转

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-26 16:29