如何在使用 SAS 的过程 sql 中添加日期列?
How to add Date column in using SAS' proc sql?
我正在尝试将今天的日期列添加到我现有的数据集中。我正在使用上一个问题中提供的方法。我的代码如下:
proc sql;
alter table data1 add today_date char label= "Today's Date" format = .;
update data1 set today_date= today();
quit;
但是,我收到以下错误:
327 proc sql;
328 alter table data1 add today_date char label= "Today's Date" format = .;
NOTE: Table DATA1 has been modified, with 11 columns.
329 update data1 set today_date= today();
ERROR: today_date, a character column, can only be updated with a character expression.
330 quit;
这样做的目的是计算数据集中现有开立账户的天数。根据我的理解,可以使用今天的日期和开户时间之间的差异来计算任期。
谢谢
我怀疑问题出在您的 Today's Date
字段格式错误,而不是日期。试试下面的代码:
proc sql;
alter table data1
add todays_date date;
update data1
set todays_date = today();
quit;
关于
I am trying to add the Today's Date column to my existing dataset.
数据集的每个单元格(行和列的交集)都有一个固定值。今天的日期值明天就是昨天的日期值。
具有动态值的数据结构称为视图,其中的某些列可以是计算的结果。
您可能需要考虑
* Create view once, use tomorrow! ;
proc sql;
create VIEW data1_v as
select
*
, today() as today_date format=date9. label= "Today's Date"
from
data1
;
您可能还想详细了解 SAS 日期值和 SAS 日期格式的性质。
- SAS 日期值 - 数字,自 1960 年 1 月 1 日以来的天数
- SAS 日期格式 - 如何为人类呈现日期值(作为字形序列)。
- SAS 日期信息格式 - 如何解释字形并将其转换为日期值
您还可以通过简单地使用 today()
函数在计算中引用今天的日期,而不依赖于数据源中预先组合或预先计算的列。
我正在尝试将今天的日期列添加到我现有的数据集中。我正在使用上一个问题中提供的方法。我的代码如下:
proc sql;
alter table data1 add today_date char label= "Today's Date" format = .;
update data1 set today_date= today();
quit;
但是,我收到以下错误:
327 proc sql;
328 alter table data1 add today_date char label= "Today's Date" format = .;
NOTE: Table DATA1 has been modified, with 11 columns.
329 update data1 set today_date= today();
ERROR: today_date, a character column, can only be updated with a character expression.
330 quit;
这样做的目的是计算数据集中现有开立账户的天数。根据我的理解,可以使用今天的日期和开户时间之间的差异来计算任期。
谢谢
我怀疑问题出在您的 Today's Date
字段格式错误,而不是日期。试试下面的代码:
proc sql;
alter table data1
add todays_date date;
update data1
set todays_date = today();
quit;
关于
I am trying to add the Today's Date column to my existing dataset.
数据集的每个单元格(行和列的交集)都有一个固定值。今天的日期值明天就是昨天的日期值。
具有动态值的数据结构称为视图,其中的某些列可以是计算的结果。
您可能需要考虑
* Create view once, use tomorrow! ;
proc sql;
create VIEW data1_v as
select
*
, today() as today_date format=date9. label= "Today's Date"
from
data1
;
您可能还想详细了解 SAS 日期值和 SAS 日期格式的性质。
- SAS 日期值 - 数字,自 1960 年 1 月 1 日以来的天数
- SAS 日期格式 - 如何为人类呈现日期值(作为字形序列)。
- SAS 日期信息格式 - 如何解释字形并将其转换为日期值
您还可以通过简单地使用 today()
函数在计算中引用今天的日期,而不依赖于数据源中预先组合或预先计算的列。