如何用Google Sheets Query函数将字符串转为标准日期格式
在Google Sheets中用Query函数统一多种字符串日期格式
问题场景
原始数据:
| Column A | Column B |
|---|---|
| 1 | 2022-11-17T13:41:47.431Z |
| 3 | 2022-11-10T21:42:06-03:00 |
| 3 | 2022-11-10 22:01:00 |
需要转换为统一的yyyy-MM-dd HH:mm:ss格式:
| Column A | Column B |
|---|---|
| 1 | 2022-11-17 13:41:47 |
| 3 | 2022-11-10 21:42:06 |
| 3 | 2022-11-10 22:01:00 |
解决方案
通过Query函数结合日期解析、格式化函数实现,核心是先将不同格式的字符串日期转为Sheets可识别的日期值,再统一输出样式。
基础兼容公式
假设数据在A:B区域,在空白单元格输入以下公式:
=QUERY( ARRAYFORMULA( { A:A, IF( ISBLANK(B:B), "", TEXT(TO_DATE(VALUE(SUBSTITUTE(SUBSTITUTE(B:B, "T", " "), "Z", ""))), "yyyy-MM-dd HH:mm:ss") ) } ), "SELECT Col1, Col2 WHERE Col1 IS NOT NULL", 1 )
公式拆解
SUBSTITUTE:将日期字符串中的T替换为空格、Z替换为空,统一基础格式;VALUE:把处理后的字符串转为数值(Sheets中日期本质是数值);TO_DATE:将数值转换为标准日期格式;TEXT:将日期格式化为目标样式;ARRAYFORMULA:让公式作用于整列数据;QUERY:筛选非空行,返回整理后的两列内容。
时区兼容优化写法
针对带时区偏移的日期(如2022-11-10T21:42:06-03:00),用PARSE_DATE精准解析:
=QUERY( ARRAYFORMULA( { A:A, IF( ISBLANK(B:B), "", TEXT(PARSE_DATE("yyyy-MM-dd'T'HH:mm:ssXXX", B:B), "yyyy-MM-dd HH:mm:ss") ) } ), "SELECT Col1, Col2 WHERE Col1 IS NOT NULL", 1 )
PARSE_DATE的格式参数"yyyy-MM-dd'T'HH:mm:ssXXX"可匹配带时区的ISO标准日期,自动转换为正确的日期值后再格式化。
内容的提问来源于stack exchange,提问作者Bruno - Growth Sales
相关产品推荐
相关产品推荐

