SAS - 将“2016/06/15”转换为日期时间格式
问题描述:
as title says我有一个excel文件,我正在导入到以2016/06/15作为日期格式的SAS中。我需要将其转换为日期时间,以便我可以将其上传到SQL。SAS - 将“2016/06/15”转换为日期时间格式
如果我上传2016/06/15到SQL(日期时间)它给了我一些随机1960年1月日期。所以我猜SQL也需要时间。
我需要的是将代码格式化为2016/06/15在SAS编程中的日期时间。
谢谢!
答
您可以使用功能dhms()
将日期转换为日期时间。例如:
data _null_;
my_date = date();
my_datetime = dhms(my_date, 0, 0, 0);
put my_date date9.
my_datetime datetime22.;
run;
输出:
02AUG2016 02AUG2016:00:00:00
如果您正在使用ODBC直通将其插入到SQL,看到这个答案(https://stackoverflow.com/a/24044451/214994)关于如何做到这一点的提示。
你好,感谢您的回复。如果我将date()替换为“06/15/2016”,这是我导入excel“2016/06/15”时SAS数据集的外观。我的输出仍然是:01JAN1960 01JAN1960:00:00:51 – mitoKon
@mitoKon有几种方法可以在SAS中创建日期值。最简单的是'mdy(6,15,2016)'函数,或者定义''06/15/2016“d'的日期文字。请注意日期字面上的结尾引号后面的'd'。 –
对不起,我在格式化SAS中真的很糟糕。我输入了my_date =“06/05/2016”d;和我得到错误:错误:无效的日期/时间/日期时间常数“2016/06/05”d。 错误77-185:“06/05/2016”中的数字转换无效d。 – mitoKon