请选择 进入手机版 | 继续访问电脑版
楼主: zorro2004
2884 16

字符形式的时间如何改成数字格式 [推广有奖]

zhanjie.wang 发表于 2016-12-15 17:15:42 |显示全部楼层 |坛友微信交流群
lovexialulu 发表于 2016-12-15 15:46
20793=input('2016-12-05',yymmdd10.);
明白你的意思了,     就是时间部分没有转换成数字。

能给个代码处理吗?

使用道具

zhanjie.wang 发表于 2016-12-15 17:29:14 |显示全部楼层 |坛友微信交流群
lovexialulu 发表于 2016-12-15 15:46
20793=input('2016-12-05',yymmdd10.);
SAS是以January 1, 1960作为起始日期的,   1960.1.1 用0表示,  1960.1.2 用1表示,   也就是说都是按天算的,所以题主输入的字符串用anydtdte转换之后, 只包含日期。 时间部分怎么转换成数字?
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
lovexialulu + 1 + 1 + 1 分析的有道理

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

lovexialulu 发表于 2016-12-15 18:06:49 |显示全部楼层 |坛友微信交流群
zhanjie.wang 发表于 2016-12-15 17:29
SAS是以January 1, 1960作为起始日期的,   1960.1.1 用0表示,  1960.1.2 用1表示,   也就是说都是按天 ...
对啊 anydtdte转换 只能得到日期   时间部分是得不到的

2016/12/5 12:05:50 这种 要显示 日期和时间

使用道具

zorro2004 发表于 2016-12-16 11:25:49 |显示全部楼层 |坛友微信交流群
zhanjie.wang 发表于 2016-12-15 15:36
data a;
input dt $20.;
dt1=input(dt,anydtdte19.);
我再试试看,谢谢哈

使用道具

mich_ard 发表于 2016-12-16 13:49:16 |显示全部楼层 |坛友微信交流群
mich_ard 发表于 2016-12-15 13:21
对这种“dirty”非标准日期时间,应该用 ANYDTDTM. 读入,再用 datetime 19. format,就可以转换成标准的日 ...
多数的回复都有问题。

读这种非标准的dirty“日期时间”,有三种格式,其意义不一样:

ANYDTDTE:只提取“date”部分。
ANYDTDTM:提取全部的“datetime”部分。
ANYDTTME:只提取“time”部分。

楼主的问题显然是ANYDTDTM。

SAS官网有解释:https://support.sas.com/documentation/cdl/en/leforinforref/64790/HTML/default/viewer.htm#n04jh1fkv5c8zan14fhqcby7jsu4.htm  

使用道具

zorro2004 发表于 2017-2-22 16:40:26 |显示全部楼层 |坛友微信交流群
mich_ard 发表于 2016-12-16 13:49
多数的回复都有问题。

读这种非标准的dirty“日期时间”,有三种格式,其意义不一样:
遇到一个新的问题,类似2016/11/11 00:00:00 这样的文本如果用input(dt,anydtdtm9.) 转换出来的就是01nov2016,日期被截断了,如果改成input(dt,anydtdtm10.) 2016/1/1 00:00:00 这样的又读不出来

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-3-28 22:51