如何在SAS(大学)中将char字符转换为日期?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SAS(大学)中将char字符转换为日期?相关的知识,希望对你有一定的参考价值。

这是一个非常简单的问题,已经在几个博客中提到过。但是,我正在尝试各种各样的事情而且它不起作用。 Idk如果发生这种情况是因为我正在使用SAS大学,或者当我输入值时我做错了什么。

我要做的是将字符串格式的列转换为日期格式。

/*Dataset for practice*/
data test;
  input date_1 $ value_1;
  cards;
20151102 1000
20151010 500
;
run;

data test_new; 
  set test; 
  date_1_new = input(date_1,yymmdd10.);
format date_1_new yymmdd10.;
run;

上面的脚本返回date_1_new的缺失值。对我来说似乎很奇怪的是,下面的代码使用数值,只需将数字转换为文本然后转换为日期。它正在发挥作用。这是相同的原则,但它的工作原理。

/*Dataset for practice*/
data test;
  input date_1 value_1;
  cards;
20151102 1000
20151010 500
;
run;

data test_new; 
  set test; 
  date_1_new = input(put(date_1,8.),yymmdd10.);
format date_1_new yymmdd10.;
run;

为什么第一个代码不起作用?看起来我正在做同样的事情......注意:使用yymmdd8时会出现同样的错误。

答案

确保输入行实际上有空格而不是字段之间的其他字符。这可能弄乱你原来的INPUT声明。

您的INPUT()函数在信息中使用宽度10,但您的数据只有8个字符长。因此,如果变量的字符9或10中有一些非数字,非空格字符,那么INPUT()函数调用将失败。

以上是关于如何在SAS(大学)中将char字符转换为日期?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Oracle中将时间戳转化为日期格式

在CASE表达式Oracle SQL中将字符串转换为日期

怎么在Oracle中将时间戳转化为日期格式

c++字符串LPCTSTR格式转化为char*

如何在 C++ 中将字符串转换为 char 数组?

如何在 C++ 中将字符串转换为 const char[]