Date 要转换为SAS HiveQL的yyyy mm dd格式的SAS宏日期变量

Date 要转换为SAS HiveQL的yyyy mm dd格式的SAS宏日期变量,date,hive,sas,hiveql,Date,Hive,Sas,Hiveql,我正在尝试设置自动宏变量日期,以便在SAS HiveQL中运行脚本 对于标准的SAS查询,我通常会使用以下内容: %let start_date = %sysfunc(intnx(month, "&sysdate"d, -1, B)); 但是,我需要将日期转换为yyyy-mm-dd格式以运行HiveQL查询 设置宏变量时,不确定如何将SAS date转换为此格式 欢迎任何帮助。您可以在使用%sysfunc()时指定格式: 使用%sysfunc()时,可以指定格式: 对于夜猫子,自动宏变

我正在尝试设置自动宏变量日期,以便在SAS HiveQL中运行脚本

对于标准的SAS查询,我通常会使用以下内容:

%let start_date = %sysfunc(intnx(month, "&sysdate"d, -1, B));
但是,我需要将日期转换为yyyy-mm-dd格式以运行HiveQL查询

设置宏变量时,不确定如何将SAS date转换为此格式


欢迎任何帮助。

您可以在使用
%sysfunc()
时指定格式:


使用
%sysfunc()
时,可以指定格式:


对于夜猫子,自动宏变量sysdate是SAS会话启动的日期。长时间运行的会话可能需要使用函数
today()
获取当前日期

远程传递日期文本也需要单引号

%let   remoteDateLiteralForPassThrough = %str(%')%sysfunc(putn(%sysfunc(today()),yymmdd10.))%str(%');
%put &=remoteDateLiteralPassThrough;

%let   remoteDateTimeLiteralForPassThro = %str(%')%sysfunc(putn(%sysfunc(today()),yymmdd10.))T0:0:0%str(%');
%put &=remoteDateTimeLiteralForPassThro;
添加:上个月的第一天为
'yyyy-mm-dd'

%let start_date_num = %sysfunc(intnx(month, %sysfunc(today()), -1, B));
%let db_start_date = %str(%')%sysfunc(putn(&start_date_num,yymmdd10.))%str(%');

对于夜猫子,自动宏变量sysdate是SAS会话启动的日期。长时间运行的会话可能需要使用函数
today()
获取当前日期

远程传递日期文本也需要单引号

%let   remoteDateLiteralForPassThrough = %str(%')%sysfunc(putn(%sysfunc(today()),yymmdd10.))%str(%');
%put &=remoteDateLiteralPassThrough;

%let   remoteDateTimeLiteralForPassThro = %str(%')%sysfunc(putn(%sysfunc(today()),yymmdd10.))T0:0:0%str(%');
%put &=remoteDateTimeLiteralForPassThro;
添加:上个月的第一天为
'yyyy-mm-dd'

%let start_date_num = %sysfunc(intnx(month, %sysfunc(today()), -1, B));
%let db_start_date = %str(%')%sysfunc(putn(&start_date_num,yymmdd10.))%str(%');

没有意识到可以指定格式。。。。。在这种情况下,当使用Week时,它默认为星期天,我需要星期一。我只想用+1来确定那个日期,但基于上述情况,我该怎么做呢?这确实是一个单独的问题,但你是否尝试过
周。2
?为自己的无礼道歉!我在第2周加了一个倒逗号,它不起作用,如果没有它就起作用了。谢谢你之前和这个!没有意识到可以指定格式。。。。。在这种情况下,当使用Week时,它默认为星期天,我需要星期一。我只想用+1来确定那个日期,但基于上述情况,我该怎么做呢?这确实是一个单独的问题,但你是否尝试过
周。2
?为自己的无礼道歉!我在第2周加了一个倒逗号,它不起作用,如果没有它就起作用了。谢谢你之前和这个!我怎样才能得到上个月的第一天?太好了,谢谢。在玩过之后,我发现它也可以作为一行代码使用:
%let start_date=%str(%)%sysfunc(intnx(month,&sysdate“d,-1,B),yymmdd10.)%str(%)我将如何修改以获得上个月的第一天?非常好,谢谢。在玩过之后,我发现它也可以作为一行代码使用:
%let start_date=%str(%)%sysfunc(intnx(month,&sysdate“d,-1,B),yymmdd10.)%str(%)