SAS SQL日期格式

SAS SQL日期格式,sas,Sas,我只是想知道如何修改下面的查询以我想要的格式显示日期。我正在使用SAS提取这些数据 现有日期格式: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

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

现有日期格式: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;

格式影响SAS显示变量值的方式。它不影响实际值本身

因此,假设变量CREATION_DATE是一个datetime值,只需为它指定一个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端。

格式影响SAS显示变量值的方式。它不影响实际值本身

因此,假设变量CREATION_DATE是一个datetime值,只需为它指定一个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端。

我尝试将其添加到我的代码版本中(我注意到您修改了SQL语句),但它不起作用。我需要在您发布的表单中使用它吗?我所做的唯一更改是您的外部SELECT语句,它使用SAS语法定义列。内部选择由远程数据源使用ODBC执行。如果内部选择中有其他列,则需要将它们添加到外部选择中。如果你有错误,请给我留言。只说“它没用”是没有用的。谢谢你的意见!我现在明白了-外部选择是“设置”表的结构,内部选择是从ODBC填充数据。问题:为什么不在内部select中使用select*from语句?它仍然会选择*?在这种情况下,这是因为您需要使用SAS语法来定义变量的
FORMAT
属性。使用普通的旧“select*”只需将值复制回SAS变量。您还可以指定其他几个SAS变量属性,例如
LABEL
INFORMAT
。我尝试将其添加到我的代码版本中(我注意到您修改了SQL语句),但没有成功。我需要在您发布的表单中使用它吗?我所做的唯一更改是您的外部SELECT语句,它使用SAS语法定义列。内部选择由远程数据源使用ODBC执行。如果内部选择中有其他列,则需要将它们添加到外部选择中。如果你有错误,请给我留言。只说“它没用”是没有用的。谢谢你的意见!我现在明白了-外部选择是“设置”表的结构,内部选择是从ODBC填充数据。问题:为什么不在内部select中使用select*from语句?它仍然会选择*?在这种情况下,这是因为您需要使用SAS语法来定义变量的
FORMAT
属性。使用普通的旧“select*”只需将值复制回SAS变量。您还可以指定其他几个SAS变量属性,例如
LABEL
INFORMAT