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://*.com/a/24044451/214994)关于如何做到这一点的提示。

+0

你好,感谢您的回复。如果我将date()替换为“06/15/2016”,这是我导入excel“2016/06/15”时SAS数据集的外观。我的输出仍然是:01JAN1960 01JAN1960:00:00:51 – mitoKon

+0

@mitoKon有几种方法可以在SAS中创建日期值。最简单的是'mdy(6,15,2016)'函数,或者定义''06/15/2016“d'的日期文字。请注意日期字面上的结尾引号后面的'd'。 –

+0

对不起,我在格式化SAS中真的很糟糕。我输入了my_date =“06/05/2016”d;和我得到错误:错误:无效的日期/时间/日期时间常数“2016/06/05”d。 错误77-185:“06/05/2016”中的数字转换无效d。 – mitoKon