AWS Databrew单小时数字段转timeStamp返回null问题求助
解决AWS Databrew中小时为单数字的日期字符串转Timestamp返回Null的问题
问题原因
Databrew默认的日期解析逻辑采用双数字小时格式(如HH),当你的日期字符串中小时是单个数字(如9:30:00而非09:30:00)时,默认解析规则无法匹配,导致返回Null。
解决方案
1. 用to_timestamp指定精确格式
在Databrew中添加自定义转换,针对你的日期字符串格式,明确指定包含单小时的格式模板:
- 如果日期格式为
yyyy-MM-dd h:mm:ss(小时为1-9时显示单数字),使用以下表达式:to_timestamp(Source, 'yyyy-MM-dd h:mm:ss') - 如果存在多种混合格式(部分是双数字小时,部分是单数字),可以用逗号分隔多个格式模板:
to_timestamp(Source, 'yyyy-MM-dd HH:mm:ss,yyyy-MM-dd h:mm:ss')
2. 用parse_datetime做灵活解析
parse_datetime函数支持自动适配更多日期格式变体,对单/双数字小时的兼容性更好,直接使用:
parse_datetime(Source)
如果想避免解析失败返回Null,可结合try函数捕获异常,保留原字符串或替换为默认值:
try(parse_datetime(Source), Source)
3. 验证与调整
- 完成转换后,在Databrew预览面板检查转换结果,确认单小时的日期已成功转为Timestamp类型。
- 若仍有异常值,用
filter规则筛选出解析失败的行,检查是否存在其他格式变体,再补充对应的格式模板。
内容的提问来源于stack exchange,提问作者Mayank Kaushik
相关产品推荐
相关产品推荐

