时间日期函数
分为四大类,创建类、提取类、基于日期的运算类、节日与特殊历法类
创建类(time=函数)
- date()和today()----返回当前日期,功能上面基本上一致
- datetime()和time()—两个函数分布返回当前日期时间与当前时间
- MDY(month,day,year)–创建包含年月日的日期值/dhms(date,hour,minute,second)–创建包含日期与时分秒的日期时间值/hms(hour,minute,second)—创建包含时分秒的时间值
提取类
函数可以从sas时间日期值中提取想要的信息
-
提取年月日
year(date)/year(today())—提取日期值中的年份
month(date)----提取日其中的月份,返回月份对应的数字
day(date)----提取日期中的具体日期,返回日期中相对应的数字 -
提取季度和工作日
QTR(data)—该函数可以提取日期值中的季度
weekday(date)----该函数可以提取日期值中的日部分是第几个工作日,每周的周日算作周一的开始 -
提取时、分、秒
hour(datetime or time)—该函数可以提取日期时间值中的小时部分
minute(datetime or time)—该函数可以提取日期时间值中的分钟
second(datetime or time)—该函数可以提起日期时间值中的秒数 -
整体提取日期或时间部分
datepart(datetime)-----整体提取日期部分
timepart(datetime)----整体提取时间部分 -
week(sas-date,descriptor)–该函数可以提取日期值中的周数
descriptor,有三个取值,u/v/w,一般情况下默认为u,u是周日作为每周的第一天而w是周一作为每周的第一天,返回都是0-53。v返回范围1-53,周一作为每周的第一天,每年的周一包含1月4号和全年第一个周四
基于日期的运算类
- 计算两个给定日期时间值之间的间隔
intck(interval(multiple)(shift-index),start-date,end-date,<'method'>)
- interval---间隔以什么单位计算(date、datetime、time、second.....),如果需要一些特定的日起算法,需要用到multiple(将interval从单一周期改变为多个) 和 shift-index(将interval的开始时间点移动到指定子周期作为新的开始时间点)
- start-date与end-date,需要与interval类型一致
- method--指计算间隔时是用连续的方法还是离散的方法(c/cont 和 D/disc表示,一般默认为D)
- 返回与指定日期时间相隔指定间隔的日期时间值
intnx(interval(multiple)(shift-index),start-from,increment<,'aligment'>)
- increment<,'alignment'>
increnment 用来指定返回值与start-date之间的间隔,可以为正负或者零
alignment是一个可选的参数有四个选项(beginning/middle/end/same默认为B)
- 返回两个日期之间相差的年份,包括不满一年的部分
yrdif(start-date,end-da