Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将日期从YYYY-MM-DD转换/更新为DDMMMYYYY格式?_Sql_Sas - Fatal编程技术网

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;