AWS Athena中ddmmyyyyhhmmss格式BIGINT转datetime方法
在AWS Athena中将ddmmyyyyhhmmss格式的BIGINT数值解析为日期时间类型
你遇到的问题是因为from_unixtime用于解析Unix时间戳(从1970-01-01 UTC开始的秒数),而你的数值是ddmmyyyyhhmmss格式的日期时间转成的数字,并非Unix时间戳,所以无法用该函数得到正确结果。
可以通过以下步骤在Athena中完成解析:
- 将BIGINT转为字符串:日期解析函数需要字符串输入,先用
cast函数转换类型。 - 补全前导零(可选但推荐):如果数值长度不足14位(比如日/月为个位数时,原数字会少一位),用
lpad函数在左侧补零,确保格式为完整的14位ddmmyyyyhhmmss。 - 使用
date_parse解析:指定对应的格式模板'%d%m%Y%H%i%s',其中:%d:两位日期(01-31)%m:两位月份(01-12)%Y:四位年份%H:24小时制的小时(00-23)%i:两位分钟(00-59)%s:两位秒数(00-59)
示例SQL
-- 直接解析完整14位数值 SELECT date_parse(cast(10062019192751 AS varchar), '%d%m%Y%H%i%s') AS parsed_datetime; -- 处理可能不足14位的数值(补前导零) SELECT date_parse(lpad(cast(your_bigint_column AS varchar), 14, '0'), '%d%m%Y%H%i%s') AS parsed_datetime FROM your_table;
执行上述语句后,示例数值10062019192751会被正确解析为2019-06-10 19:27:51。
内容的提问来源于stack exchange,提问作者c0ng111
相关产品推荐
相关产品推荐

