一、日期的合并
将月、日、年合并为一个日期格式的变量或值。
mdy(月,日,年);
注意:月,日,年的顺序不能变。
二、日期的差值
-
计算两个日期之间以年为单位的差值
yrdif(开始日期,结束日期,"计算依据"); -
计算两个日期之间以天为单位的差值
datdif(开始日期,结束日期,"计算依据");
计算依据:
"actual" | 按当年的实际天数计算,常用 | yrdif(开始日期,结束日期,"actual"); datdif(开始日期,结束日期,"actual"); |
"ACT/365" | 不管当年多少天,都按365天算 | yrdif(开始日期,结束日期,"ACT/365"); datdif(开始日期,结束日期,"ACT/365"); |
data test1;
input year1$ month1$ day1$ year2$ month2$ day2$;
date1=mdy(month1,day1,year1);
date2=mdy(month2,day2,year2);
difyr=yrdif(date1,date2,"actual");
difdat=datdif(date1,date2,"actual");
format date1:yymmdd10. date2:yymmdd10.;
cards;
2013 05 21 2014 03 11
2013 03 10 2014 01 22
2013 06 05 2014 05 06
2013 07 08 2014 04 13
;
proc print;
run;
三、日期的提取
与日期和时间提取有关的几个函数
函数 | 作用 |
---|---|
Year(日期变量) | 返回日期变量或日期值的年 |
Month(日期变量) | 返回日期变量或日期值的月 |
Day(日期变量) | 返回日期变量或日期值的日 |
Qtr(日期变量) | 返回日期变量或日期值的季度 |
Week(日期变量) | 返回日期变量或日期值的周数(第几周) |
Weekday(日期变量) | 返回日期变量或日期值的周(周几)---周日的返回值为1,周六的返回值为7. |
Datepart(日期时间变量) | 返回日期时间变量中的日期部分 |
Timepart(日期时间变量) | 返回日期时间变量中的时间部分 |
Hour(日期时间变量或时间变量) | 返回日期时间变量或时间变量的小时部分 |
Today() | 返回当天的日期,括号内什么都不加。 如果你想知道自己今天具体多少岁,就可以计算today()函数返回值与你的出生日期的差值。 |
data test1;
input dt: ymddttm30.; /*指定dt为ymddttmw.格式*/
date=datepart(dt); /*提取dt的日期部分*/
time=timepart(dt); /*提取dt的时间部分*/
month=month(date); /*提取date中的月*/
hour=hour(time); /*提取time中的小时*/
format dt datetime30.; /*指定dt的输出格式为datetime30.*/
format date yymmdd10.; /*指定date的输出格式为yymmdd10.*/
format time time12.; /*指定time的输出格式为time12.*/
cards;
2019/6/26:11:20:00
2009/5/5/:19:30:00
2009/9/12:13:20:00
;
proc print;
run;