加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sas—日期格式及函数

(2017-06-02 10:38:46)
标签:

sas

数据分析师培训

数据分析

数据挖掘

sas—日期格式及函数

很久不用sas了,把日期的格式给忘了,重新学习下。

前不久,有个同事问我怎么把 date9.如“21jan2016”d 的格式换成yymmdd10. 2016-01-21的格式;

用informat设定好变量格式即可。

data test;

set time;

informat dt yymmdd10.;

dt = dat;

run;


《时间及日期函数》

以下是常用的时间及日期函数

MDY(m,d,yr) 生成yr年m月d日的SAS日期值            
YEAR(date) 由SAS日期值date得到年            
MONTH(date) 由SAS日期值date得到月            
DAY(date) 由SAS日期值date得到日            
WEEKDAY(date) 由SAS日期值date得到星期几            
QTR(date) 由SAS日期值date得到季度值            

MDY(m,d,yr) 生成yr年m月d日的SAS日期值            
YEAR(date) 由SAS日期值date得到年            
MONTH(date) 由SAS日期值date得到月            
DAY(date) 由SAS日期值date得到日            
WEEKDAY(date) 由SAS日期值date得到星期几            
QTR(date) 由SAS日期值date得到季度值           

HMS(h,m,s) 由小时h、分钟m、秒s生成SAS时间值            

DHMS(d,h,m,s) 由SAS日期值d、小时h、分钟m、秒s生成SAS日期时间值  

DATEPART(dt) 求SAS日期时间值dt的日期部分

INTNX()计算从from开始经过n个interval间隔后的sas日期

突然想知道自己出生多少天了,于是用sas计算了一下,代码如下:

data  a;

format sdate  edate yymmdd10. ; 

sdate='16oct1993'd;                 

edate='24MAR2017'd;                 

loveDay=datdif(sdate, edate, 'actual');

run;

这里有两点需要注意,

1.sas通常用数值来表设计日期,具体值是指到1960-01-01的天数,如果是1959-01-01,那么就是-365;

2.datdif():返回两个日期间相隔的真实天数,当然也可以用intck()。以此为引,讲讲sas中的日期格式。 

日期格式:

SAS格式有输入输出格式,输入格式通常在input语句中使用,输出语句通常在format语句中使用。

以下是6种输入格式:

http://cda.pinggu.org/uploadfile/image/20170601/20170601062117_51298.png

输出格式,常见的有8种,其中4种是常见的:
datew.
mmddyyw.
Ddmmyyw.
Yymmddw.
julianw.
weekdatew.
worddatew.
dayw.

看下一个例子:

http://cda.pinggu.org/uploadfile/image/20170601/20170601062056_28362.png

log:

http://cda.pinggu.org/uploadfile/image/20170601/20170601062037_85824.png

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有