将格式从datetime更改为DDMMYYP10

将格式从datetime更改为DDMMYYP10,date,sas,format,Date,Sas,Format,我尝试了很多将LOADTIME列(格式为Datetime20.)转换为DDMMYYP10。但它不起作用 我也试过用PUT或INPUT,还有DATEPART,但都不管用 PROC SQL; UPDATE SERVER.VIEWTABLE V SET 'Load_Time__c'n = INPUT(PUT(V.LOAD_TIME, DATETIME20.), DDMMYYP10.); QUIT; 下面代码的结果是nothing,它运行通过,但Load_Time___c字段中没有写入

我尝试了很多将LOADTIME列(格式为Datetime20.)转换为DDMMYYP10。但它不起作用

我也试过用PUT或INPUT,还有DATEPART,但都不管用

PROC SQL;
    UPDATE SERVER.VIEWTABLE V
    SET 'Load_Time__c'n = INPUT(PUT(V.LOAD_TIME, DATETIME20.), DDMMYYP10.);
QUIT;

下面代码的结果是nothing,它运行通过,但Load_Time___c字段中没有写入任何内容。

SAS将日期时间值存储为秒数,日期值存储为天数。因此,在更改附加到变量的显示格式之前,需要更改存储在变量中的值。可以使用DATEPART()函数将datetime值转换为日期值

使用新变量创建新数据集可能比尝试修改现有数据集更容易。或者可能是一种新的观点

data want ;
  set have ;
  LOAD_TIME = datepart(LOAD_TIME);
  format LOAD_TIME ddmmyyp10.;
run;

新的观点是不可能的。由于速度的原因,我每次都会在晚上复制一份视图。之后,我想添加更多具有正确数据类型的列。我需要一个很好的分析基础,所以你需要运行一些类似于答案中的数据步骤的东西来复制并创建新的变量。在创建数据集之后,使用SQLUpdate命令修改数据集只会使工作加倍。