我想与DATETIME分别获得日期和时间。格式

时间:2018-09-08 07:34:09

标签: sas analytics

我只想获取与$user = Socialite::driver('twitter')->userFromTokenAndSecret($token['oauth_token'], $token['oauth_token_secret']); 分开的日期和时间

数据集中可用的格式和信息垫为:

01JAN13:08:29:00

如果我在Date Num 8 DATETIME.(format) ANYDTDTM40(informat) 上运行datepart(),则会得到01JAN13:08:29:00的输出(我不想要)。

2 个答案:

答案 0 :(得分:2)

DATEPART函数从日期时间值中提取日期值。如您所见,日期值只是一个数字。 日期格式必须应用于包含日期值的变量。基本SAS变量只有两种值类型:字符和数字。

data want;
  now_dtm = datetime();
  now_dt = datepart(now_dtm);
  now_dt_unformatted = now_dt;

  format now_dtm datetime.;
  format now_dt date9.;  * <----- this is what you need, format stored in data set header information;
run;

proc print data=want;
run;

* you can change the format temporarily during a proc step;
proc print data=want;
  format now_dt yymmdd10.;             * <---- changes format for duration of proc step;
  format now_dt_unformatted mmddyy10.;
run;

答案 1 :(得分:2)

实际上,19,359正是您想要的值。您从1960年以来的秒数开始,并将其转换为1960年以来的天数。

values$question_index

结果

data x ;
  dt = '01JAN13:08:29:00'dt ;
  date = datepart(dt);
  time = timepart(dt);
  put (dt date time) (=);
run;

您只需要在新变量中附加格式,SAS就可以以人类可以识别的格式显示值。您可以使用DATE9之类的格式。使其显示19,359为dt=1672648140 date=19359 time=30540 。同样,您需要在时间部分附加一种格式,以使其以人类会解释为时间的格式打印。

01JAN2013