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

标签 date format sas

我正在尝试从 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/

相关文章:

sas - 转置逗号分隔字段

SAS 根据起始价格创建滞后

jquery - 如何将 Q 语言 (KDB) 中的日期格式转换为 MM/DD

javascript - AngularJS 如何处理 Bootstrap 日期选择器日期以将其发送给 REST 后端

spring-boot - Spring Boot 的 application.yml 与 application.properties

安卓 NFC : 'd' prepended on NDEF payload

unix - SAS 在 Unix 服务器上定义宏

java - 将毫秒转换为日期返回 1970 作为年份

javascript - JavaScript 的 Date() 对象

java - 这个文件是用什么格式写的?