楼主: yumenderen
1619 5

[原创博文] 如何在一张表上输出不同的时间格式 [推广有奖]

  • 1关注
  • 2粉丝

讲师

7%

还不是VIP/贵宾

-

威望
0
论坛币
150 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
6843 点
帖子
291
精华
0
在线时间
475 小时
注册时间
2007-12-28
最后登录
2021-5-23

楼主
yumenderen 发表于 2011-11-8 16:22:05 |AI写论文
10论坛币
请教各位达人:
        我想让时间在2010年前的输出格式为“年",之后的为“月”,当使用了条件语句就报错,大家帮帮我啊!
    proc report data=total nowd;
column rdate num;
define rdate/group ;
if rdate<mdy(01,01,2010) then format rdate year.;else
format rdate yymm.;
run;

关键词:proc report Report column DEFINE repor report 如何

沙发
liudongfang 发表于 2011-11-8 19:59:07
首先这样写程序是不对的,IF-THEN语句是DATA STEP语句,在PROC 步里面是不能运行的。要解决你的问题,我给你提供一个可行的思路:

在PROC REPORT的COMPUTE 语句(里面可以写IF语句)利用CALL DEFINE.

藤椅
jingju11 发表于 2011-11-8 23:13:28
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT procedure
JingJu
  1. *method 1:;
  2. proc report  nowd headline headskip split='*';
  3. ...
  4.    *method 2:;
  5. proc format;
  6.    value
  7. proc report  nowd headline headskip split='*';
  8.    ...
复制代码

板凳
hubertweir 发表于 2011-11-8 23:50:49
学习了。。。

报纸
yumenderen 发表于 2011-11-9 09:20:16
jingju11 发表于 2011-11-8 23:13
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT pr ...
非常感谢!真是高手呀!
我执行你给我的程序后是这种效果:
2005
2005
2005
2006
2006
……
如果我想让都是相同日期的合并,
就是想达到这种效果
2005
2006
2007
2008
2009
2010.01
2010.02
……
该怎么做呢,我前面有define date/group,咋就不行呢

地板
yumenderen 发表于 2011-11-10 20:51:52
jingju11 发表于 2011-11-8 23:13
You can either compute (format) the date in REPORT (as LS pointed out) or assign format by FORMAT pr ...
才准备评最佳的呢,怎么一看答案都变的不全了呀

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-6 13:47