Google Data Studio如何正确解析YYYY/MM/DD H:M:S AM/PM格式日期
问题根因
之前用PARSE_DATETIME返回NULL,是两个格式匹配错误导致的:
- 格式字符串末尾多写了一个多余的右括号
),和原始字段的实际内容不匹配 - 观察样本数据可以发现,原始字段里日期段和时间段之间是2个连续空格,你写的格式串里只留了1个空格,无法对应原始文本结构,直接导致解析失败。
另外你之前提前做24转12小时制、合并日期时间的操作完全是多余的,一个计算字段就能搞定全流程。
可用公式
直接新建计算字段,粘贴下面的公式即可,一步完成解析+格式转换:
FORMAT_DATETIME( "%d %B %Y %I:%M:%S %p", PARSE_DATETIME("%Y/%m/%d %I:%M:%S %p", `Date hour and minute`) )
公式逻辑说明
- 内层
PARSE_DATETIME负责把原始文本转成日期时间类型:注意格式串里日期段%Y/%m/%d和时间段%I:%M:%S %p之间必须留2个空格,完全匹配原始文本的空格结构,同时删掉了之前多余的右括号,不会再出现解析失败返回NULL的问题 - 外层
FORMAT_DATETIME负责把解析好的日期时间转成你要的输出格式:%d输出两位日期、%B输出英文月份全称、%Y输出四位年份,后面保留12小时制的时分秒和AM/PM标识,和你要的目标格式完全一致。
转换效果
对应给出的样本数据,转换结果完全符合预期:
- 原始值
2022/06/26 08:36:00 PM→ 输出26 June 2022 08:36:00 PM - 原始值
2022/06/27 11:35:00 AM→ 输出27 June 2022 11:35:00 AM - 原始值
2022/06/27 12:54:00 AM→ 输出27 June 2022 12:54:00 AM - 其余所有样本值均能按规则正确转换,无NULL值问题。
内容的提问来源于stack exchange,提问作者Seo By Hamdan
相关产品推荐
相关产品推荐

