首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在d.m.yyyy中将数据格式转换为dd.mm.yyyy?

如何在d.m.yyyy中将数据格式转换为dd.mm.yyyy?
EN

Stack Overflow用户
提问于 2016-03-25 09:56:25
回答 3查看 6.1K关注 0票数 2

我有一个输入文件,其中我的日期没有前导零(比如25.3.2016),但是我想把它们转换成DDMMYYYYP10格式。

有没有任何格式,格式,功能等可以为我做到这一点?

我正在使用SAS企业指南4.3。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-01 08:23:21

我的输入是dataset,所以这对我有用:

代码语言:javascript
复制
data dates; 
    set My_data;
        format date1 DDMMYYP10.;
        date1 = input (date, anydtdte10.);

run;
票数 1
EN

Stack Overflow用户

发布于 2016-03-26 20:26:40

不需要任何“转换”,真的。你只需要两件事:

  1. 适当的信息格式(在您的情况下,ANYDTDTE10.应该这样做),以便在读取数据时充分识别日期
  2. 一种显示日期的输出格式(您要求DDMMYYP10.),前提是它们与上面的informat一起正确导入。

说明:

代码语言:javascript
复制
data dates;
  format mydate DDMMYYP10.;
  input mydate ANYDTDTE10.;
  datalines;
25.3.2016
run;

proc print;run;

结果:

代码语言:javascript
复制
Obs mydate 
1   25.03.2016 

当然,如果您正在读取外部数据(我假设这是您的情况),那么您将需要一个INFILE语句而不是一个DATALINES,但是结果是相同的。

请记住,输出格式只是格式。您可以在不影响基础数据的情况下随意更改它们。所以这里的关键是informat

票数 3
EN

Stack Overflow用户

发布于 2016-03-25 11:31:29

SAS被设计为将日期存储为"SAS日期“,这是一个数字变量,即1960年1月1日以来的天数。假设您有一个SAS日期(而不是一个看起来像日期的字符变量),那么更改用于此变量的格式应该是直接的。请注意,这并没有真正转换值,它只是更改了打印时显示值的格式,等等。

代码语言:javascript
复制
36   data want;
37     mydate="1Mar2016"d;
38     put mydate=;
39     format mydate ddmmyyp10.;
40   run;

mydate=01.03.2016

编辑:我重新阅读了你的问题,并意识到也许你没有SAS数据集作为输入,而是有一个文本文件?如果是这样的话,您可以使用ddmmyy10 informat读取25.3.2016这样的日期。下面使用ddmmyy10格式读取文本文件中的值,然后使用ddmmyyp10格式将其格式化为句点分隔符:

代码语言:javascript
复制
115  data want;
116    input mydate ddmmyy10.;
117    put mydate=;
118    format mydate ddmmyyp10.;
119    cards;

mydate=01.03.1960
NOTE: The data set WORK.WANT has 1 observations and 1 variables.

121  ;
122  run;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36217713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档