gpt4 book ai didi

date - yyyymm 转换为完整的 sas 日期 (dd/mm/ccyy) - SAS

转载 作者:行者123 更新时间:2023-12-04 02:36:32 26 4
gpt4 key购买 nike

我正在尝试从 SAS (ccyymm) 中的数字字段获取月份的最后一天。

例如201401 将是 31-01-2014。

我已经设法让字段显示为日期类型字段(尽管仍显示为 ccyymm),在 PROC SQL SELECT 语句

year_month_field INFORMAT YYMMN6. AS year_month_date

我认为我从另一个被问到的问题中找到了一些代码,一旦我可以获得完整的日期,这些代码应该会给出该月的最后一天。

INTNX ( MONTH , year_month_date , 1) -1 

这行得通吗?如果没有任何其他建议,我们将不胜感激。

最佳答案

请注意下面将 yyyymm 转换为“本月最后一天”MMMYYYY 格式的区别,具体取决于 yyyymm 是字符变量还是数字变量。

data test;
yyyymm_character='201401';
yyyymm_numeric=201401;

date1=intnx('month', input(yyyymm_character, yymmn6.), 1)-1;
date2=intnx('month', input(put(yyyymm_numeric,6.), yymmn6.), 1)-1;
format date1 date2 date9.;
/*date1=date2=31jan2014*/
run;

或者,您可以使用 intnx 函数的内置选项自动将任何输入日期设置为相应月份的最后一天。使用 'e' 如下所示。

data test;
yyyymm_character='201401';
yyyymm_numeric=201401;

date1=intnx('month', input(yyyymm_character, yymmn6.), 0, 'e');
date2=intnx('month', input(put(yyyymm_numeric,6.), yymmn6.), 0,'e');
format date1 date2 date9.;
/*date1=date2=31jan2014*/
run

关于date - yyyymm 转换为完整的 sas 日期 (dd/mm/ccyy) - SAS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21779578/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com