楼主: 厌学ing
16019 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
拉您进交流群
GMT+8, 2025-12-27 08:43