如何在SAS中将字符串类型列转换为datetime18.格式
SAS字符串格式时间转datetime18.格式实现方案
你可以通过input函数匹配对应输入格式(informat)将字符串转为SAS datetime数值,再指定datetime18.输出格式即可完成需求,具体操作如下:
核心逻辑
- 你给出的原始字符串结构为
dd/mm/yyyy HH:MM:SS,直接用ddmmyyhh19.informat 即可完成解析,转换为SAS原生datetime数值 - 转换后为datetime变量指定
datetime18.格式,输出样式就是你需要的21Jan20:12:10:20格式
示例代码
单值测试代码
data test_dt; /* 原始字符串时间 */ raw_char = '21/01/2020 12:10:20'; /* 字符串转datetime数值 */ dt_val = input(raw_char, ddmmyyhh19.); /* 指定输出格式 */ format dt_val datetime18.; run;
运行后查看dt_val字段,输出结果即为21JAN20:12:10:20。
整列批量转换代码
假设你的原始数据集名为source_data,待转换的字符串时间字段名为str_datetime,执行以下代码即可新增datetime格式字段:
data result_data; set source_data; /* 加??修饰符可避免字符串格式不规范时报错 */ sas_datetime = input(str_datetime, ?? ddmmyyhh19.); format sas_datetime datetime18.; run;
内容的提问来源于stack exchange,提问作者DUNGHT13
相关产品推荐
相关产品推荐

