dcl -s今天的日期inz(* Sys)是当前的系统日期 我如何以这种格式(2017/01/01)获得当年第一个月的第一天
答案 0 :(得分:1)
您可能需要查看the %SUBST built-in function。
date = d'1999-02-17';
time = t'01.23.45';
timestamp = z'1999-02-17-01.23.45.98765';
num = %subdt(date:*YEARS);
// num = 1999
num = %subdt(time:*MN);
// num = 23
答案 1 :(得分:1)
这是一个光滑的技巧:
dcl-proc BuildDate;
dcl-pi *n date;
pyear int(5) const;
pmonth int(5) const;
pday int(5) const;
end-pi;
dcl-ds *n;
dateds date(*iso) inz(d'0001-01-01');
year zoned(4:0) pos(1);
month zoned(2:0) pos(6);
day zoned(2:0) pos(9);
end-ds;
year = pyear;
month = pmonth;
day = pday;
test(e) dateds;
if %error;
reset dateds;
endif;
return dateds;
end-proc;
现在,您需要做的就是在Day Month和Year中构建一个有效的日期:
FirstDOY = BuildDate(%subdt(%date(): *Y): 1: 1);