今天继续昨天的话题,昨天简单介绍了日期,时间的概念,今天说一下yearcutoff,日期格式、时间格式
SAS系统在读取日期的时候,会遇到两位和四位的年份,如果是两位的年份,到底是哪一年呢,yearcutoff很好的解决了这个问题。SAS 7以来,默认的yearcutoff=1920,就是当SAS读取到两位的年份的时候,系统就会认为在1920--2019之间,而对于四位的年份,即使在这个范围之外,不会有影响。同时,自己也可以修改这个参数。
日期有很多格式,年月日显示也不相同,在使用的时候,需要先确定读入的格式,具体格式可以去网上搜一下。
目前用的比较多的就是:
'01mar2013:00:00:00'dt
或者 dhms('1mar2013'd, 0,0,0)
日期时间函数
datepart(added_time)as date format= mmddyy10. *在SQL语句中用到的,提取日期;
Year(date)\month(date)\day(date) *
得到日期的年、月、日;
结合put函数一起使用
Put(source,format) *
改变格式;
格式如下:ddmmmyy hh:mm:ss.ss, ddmmmyy是
日期
格式,与DATEw.的格式相同,hh:mm:ss.ss与TIMEw相同,如果没有输入ss.ss,则会默认为0;DD表示
日期
,MMM表示月份,取英文字母的前三位,YY或者YYYY表示年份,也可以用空格、“/”、"-"连接,w表示包括连接符号的宽度。格式如下:hh:mm:ss.ss,hh表示小时,mm表示分钟,ss.ss是非必须存在项,表示秒和毫秒,如果没有写入ss.ss则会自动默认为0。格式如下:month-name dd,yyyy;
MDY(m,d,yr) 生成yr年m月d日的
SAS
日期
值
Y
EAR
(date) 由
SAS
日期
值date得到年
MONTH(date) 由
SAS
日期
值date得到月
DAY(date) 由
SAS
日期
值date得到日
WEEKDAY(date)
date()和today()----返回当前
日期
,功能上面基本上一致
datetime()和time()—两个
函数
分布返回当前
日期
时间
与当前
时间
MDY(month,day,y
ear
)–创建包含年月日的
日期
值/dhms(date,hour,minute,second)–创建包含
日期
与时分秒的
日期
时间
值/hms(hour,minute,second)—创建包含时分秒的
时间
值
函数
可以从
sas
时间
日期
值中提取想要的信息提取年月日
y
ear
(date)/y
ear
(today(
处理股票数据,经常要对
时间
变量作处理,特意摘录
sas
.support.com的样例来
学习
sas
的用于
时间
的
函数
.另外《DATE HANDLING IN THE
SAS
® SYSTEM》一文中也有很多详细的例子。
*计算年龄;
/* Create sample data */
data birth;
input name $ bday :mmddyy10.;
datalines;
1.first./last.(查找数据集中第一个值或最后一个值的
函数
)2.
sas
中导入txt格式的文件 (length varname #;) infile'来源.txt' dlm=‘’ dsd missover; input statement.......; format ........; run;3. 数值型变
主要的输入输出格式名描述w.d标准的数值数据型格式$w.标准的字符数据型格式COMMAw.d含有逗号、小数点的数值数据型格式DOLLARw.d含有美元号$、逗号和小数点的数值数据型格式DATEw.日、月份、年形式的
日期
值(ddmmmyy),例如w=7时,18jan97;w=9时,18jan1997MMDDYYw.月份、日、年形式的
日期
值(mmddyy),例如,w=8时,01/18/97;w=6时,...