Google Sheets含字符串日期(虚拟列)的QUERY无结果解决方案
Google Sheets QUERY筛选ISO格式字符串日期的解决方案
如果你用QUERY处理带IMPORTRANGE导入的、格式为"2023-02-18T14:02:58.760Z"的字符串日期时,加WHERE子句总是返回空结果,可以试试这两种方案:
方案1:直接文本比较(最简单)
因为这种ISO 8601格式的日期字符串本身是按年-月-日-时-分-秒的顺序排列的,直接做文本比较就能实现日期范围筛选,不需要转成日期对象。示例公式:
=QUERY(IMPORTRANGE("你的源表URL", "数据区域"), "SELECT * WHERE Col1 >= '2023-02-18' AND Col1 <= '2023-02-20'", 1)
这里的Col1对应你存放日期字符串的列,'2023-02-18'和'2023-02-20'是你要筛选的起止日期(不需要带时间部分)。
方案2:虚拟列转换(需返回日期格式结果时用)
如果需要把筛选后的日期转成标准日期格式显示,可以在QUERY里创建虚拟列,同时在WHERE子句中用转换后的日期值筛选。之前你尝试的DATEVALUE(LEFT(...))没成功,大概率是WHERE子句里没同步用相同的转换逻辑,正确示例:
=QUERY(IMPORTRANGE("你的源表URL", "数据区域"), "SELECT Col1, DATEVALUE(LEFT(Col1, 10)) WHERE DATEVALUE(LEFT(Col1, 10)) >= DATE('2023-02-18') AND DATEVALUE(LEFT(Col1, 10)) <= DATE('2023-02-20')", 1)
LEFT(Col1, 10):提取日期字符串中的YYYY-MM-DD部分DATEVALUE(...):把提取出的文本转成日期值DATE('2023-02-18'):生成标准日期对象用于比较
这样既完成了筛选,又能得到转换后的日期列,不用在源表或当前表加额外辅助列。
内容的提问来源于stack exchange,提问作者steeveesas
相关产品推荐
相关产品推荐

