Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符日期转换为sas日期,尝试了多种方法。_Sas - Fatal编程技术网

如何将字符日期转换为sas日期,尝试了多种方法。

如何将字符日期转换为sas日期,尝试了多种方法。,sas,Sas,我有一个数据,它在一列中,混合了所有数据类型和格式 文本、数字和日期。 我得把列换成行。 当我将数据导入sas 9.3时,日期会变成一个数字(字符格式),转置后,当我尝试使用输入函数进行转换时,它不会给出正确的日期。 我得到的观察结果是日期列中的41172。 我如何转换它 认为您混淆了数据类型和格式。这两种类型是字符和数字 日期都是数字,存储为SASDATE,即从1960年1月1日起的偏移量,每天表示1 要显示每个SASDate,必须将该变量格式化为日期(如date7、ddmmyy等)。这意味着

我有一个数据,它在一列中,混合了所有数据类型和格式

文本、数字和日期。 我得把列换成行。 当我将数据导入sas 9.3时,日期会变成一个数字(字符格式),转置后,当我尝试使用输入函数进行转换时,它不会给出正确的日期。 我得到的观察结果是日期列中的41172。
我如何转换它

认为您混淆了数据类型和格式。这两种类型是字符和数字

日期都是数字,存储为SASDATE,即从1960年1月1日起的偏移量,每天表示1

要显示每个SASDate,必须将该变量格式化为日期(如date7、ddmmyy等)。这意味着您首先需要使用输入函数将文本转换为数字(SASDate),然后使用put函数将其格式化为所需格式

如果使用的是输入函数,则只需添加其中一种格式和一个put函数:

newvar=put(input(var,8.),date7.);
或者您可以将其保留为input(),并使用以下命令:

format var date7.;

在您的数据步骤中。

您必须提供您所拥有和正在做的示例。在我的脑海中,像这样的数字听起来像Excel是数据源,它没有正确地进入SAS(Excel使用像那样的数字作为日期,1900年1月1日不是1960年1月1日),但你甚至没有提供详细信息。这实际上与你之前的问题相同吗?41172是Excel存储2012年9月20日的方式没有$DATE格式(虽然我同意有一些混淆,但考虑到另一个问题,我不认为这是他的问题。)抱歉,意思是日期7..似乎两者都混淆了日期存储为sasdate,而不是显示为日期本身。