2012-08-14 273 views
1

只是想知道如何改变下面的查询来以我想要的格式显示日期。我正在使用SAS来提取这些数据。SAS SQL日期格式

现有的日期格式:15MAR2011:09:05:16.000000

格式我想:15MAR2011:09:05:16

查询我使用:

proc sql; 
create table data.test as 
select  * from connection to odbc 
(
select  ID, 
      DATE AS CREATION_DATE, 

from   maintable 
); 
quit; 

回答

4

一个format影响如何SAS显示一个变量值。它不影响实际价值本身。

因此,假设变量CREATION_DATE是一个日期时间值,只需将其赋值为DATETIME20格式即可。以显示你想要的:

proc sql; 
    create table data.test as 
    select ID, CREATION_DATE format=datetime20. 
    from connection to odbc 
    (select ID, DATE AS CREATION_DATE 
    from maintable); 
quit; 

然而,一些ODBC接口将返回你的日期列作为字符串,所以你需要确保它显示了SAS侧作为一个适当的日期时间值了。

+0

我试着将其添加到我的代码版本中(我注意到你修改了SQL语句),但它没有工作。我是否需要以您发布的表单使用它? – Adam 2012-08-14 17:04:40

+0

我做的唯一更改就是您的外部SELECT语句,它使用SAS语法定义列。您的内部SELECT由远程数据源使用ODBC执行。如果在内部SELECT中有其他列,则需要将它们添加到外部SELECT中。如果你有错误,请给我留言。只说“它没有用”是没有用的。 – BellevueBob 2012-08-14 17:14:32

+0

感谢您的意见!我现在明白了 - 外部选择是“设置”表的结构,内部选择是从ODBC中填充数据。问题:为什么我们不在内部select中使用select * from语句?它还会选择*吗? – Adam 2012-08-14 17:22:46