Sql 如何将日期从YYYY-MM-DD转换/更新为DDMMMYYYY格式?
我对编码比较陌生,但在我的新工作中已经开始学习了。目前,我正在尝试使两个不同表中的两列具有相同的日期格式。第一种是Sql 如何将日期从YYYY-MM-DD转换/更新为DDMMMYYYY格式?,sql,sas,Sql,Sas,我对编码比较陌生,但在我的新工作中已经开始学习了。目前,我正在尝试使两个不同表中的两列具有相同的日期格式。第一种是DDMMMYYYY格式(即2019年1月1日),而第二种是yyy-MM-DD格式(即2019-01-01)。我想将第二种格式改为第一种格式,但我还没有在网上看到任何关于这方面的建议。任何帮助都将不胜感激,因为最终目标是在这个日期列上连接这两个表 我假设代码的形式是这样的 update table2 set date = ???????; 无法以特定方式格式化“DateTime”类型
DDMMMYYYY
格式(即2019年1月1日),而第二种是yyy-MM-DD
格式(即2019-01-01
)。我想将第二种格式改为第一种格式,但我还没有在网上看到任何关于这方面的建议。任何帮助都将不胜感激,因为最终目标是在这个日期列上连接这两个表
我假设代码的形式是这样的
update table2
set date = ???????;
无法以特定方式格式化“DateTime”类型的列。很可能一列或两列都是“varchar”或“nvarchar”类型。
要将它们用作正确的“DateTime”列,您可以添加“DateTime”类型的新列,然后将旧“varchar”列中的值复制为“DateTime”。不能以特定方式格式化“DateTime”类型的列。很可能一列或两列都是“varchar”或“nvarchar”类型。
要将它们用作正确的“DateTime”列,您可以添加一个“DateTime”类型的新列,然后将旧“varchar”列中的值复制为“DateTime”。如果变量的类型是带有日期格式的数字,则只需更改应用的格式即可。如果是字符变量,则需要进行类型转换 可以在数据步骤中应用格式,也可以使用PROC数据集修改现有格式。请参见下面的每个示例
*change format as part of a data step;
data ibm;
set sashelp.stocks;
format date yymmddd10.;
run;
proc print data=ibm (obs=5);
run;
*change format without modifying data set;
proc datasets lib=work nodetails nolist;
modify ibm;
format date worddate.;
run;
proc print data=ibm (obs=5);
run;
假设变量的类型是带有日期格式的数字,则只需更改应用的格式即可。如果是字符变量,则需要进行类型转换 可以在数据步骤中应用格式,也可以使用PROC数据集修改现有格式。请参见下面的每个示例
*change format as part of a data step;
data ibm;
set sashelp.stocks;
format date yymmddd10.;
run;
proc print data=ibm (obs=5);
run;
*change format without modifying data set;
proc datasets lib=work nodetails nolist;
modify ibm;
format date worddate.;
run;
proc print data=ibm (obs=5);
run;
在SAS中,格式只是关于如何显示值的说明。如果有一个日期为9的变量。格式规范随附,另附YYMMDD10。存储的实际值的格式不变 可以使用FORMAT语句更改变量的显示格式。您可以在显示数据的位置执行此操作。在过程步骤中说
proc print data=a ;
format date_vara yymmdd10.;
run;
proc print data=b ;
format date_varb yymmdd10.;
run;
也可以在数据集定义中附加格式。然后,默认情况下,SAS将使用它进行格式化
data new;
set a b ;
format date_vara date_varb yymmdd10.;
run;
您甚至可以修改数据集的元数据,以更改附加到变量的格式
proc datasets lib=work nolist;
modify a;
format date_vara yymmdd10.;
run;
quit;
PS如果要向SAS代码添加日期文字(常量),则需要始终使用日期信息可以读取的样式的字符串<代码>日期>2019年1月1日代码>无论变量附加何种显示格式。在SAS中,格式只是如何显示值的说明。如果有一个日期为9的变量。格式规范随附,另附YYMMDD10。存储的实际值的格式不变
proc datasets lib=work nolist;
modify a;
format date_vara yymmdd10.;
run;
quit;
可以使用FORMAT语句更改变量的显示格式。您可以在显示数据的位置执行此操作。在过程步骤中说
proc print data=a ;
format date_vara yymmdd10.;
run;
proc print data=b ;
format date_varb yymmdd10.;
run;
也可以在数据集定义中附加格式。然后,默认情况下,SAS将使用它进行格式化
data new;
set a b ;
format date_vara date_varb yymmdd10.;
run;
您甚至可以修改数据集的元数据,以更改附加到变量的格式
proc datasets lib=work nolist;
modify a;
format date_vara yymmdd10.;
run;
quit;
PS如果要向SAS代码添加日期文字(常量),则需要始终使用日期信息可以读取的样式的字符串<代码>日期>2019年1月1日代码>无论变量附加了何种显示格式。数据库引擎中有一些函数可以提供datetime列的片段。您可以连接它们。对于MySQL,请参考以下链接:为什么?如果它们是日期值,则用于显示该值的格式不会更改该值。数据库引擎中有一些函数可以为您提供datetime列的各个部分。您可以连接它们。对于MySQL,请参考以下链接:为什么?如果它们是日期值,则用于显示该值的格式不会更改该值。
proc datasets lib=work nolist;
modify a;
format date_vara yymmdd10.;
run;
quit;