【问题标题】:Google Sheets QUERY 'where' condition returning empty output when trying to select by date尝试按日期选择时,Google Sheets QUERY 'where' 条件返回空输出
【发布时间】:2023-03-30 23:50:01
【问题描述】:

我正在学习 Google 表格函数/公式,但遇到了 QUERY 函数的问题。我有两张单独的纸,并试图将行/列从一张纸拉到另一张纸上。表 B 是我要从中提取数据的地方。工作表 B 有 5 列,从 A 到 E。在此工作表中添加和删除行,因此要查询的行数会有所不同。我想提取 E 列等于今天日期的所有行。这是我正在尝试的代码:

=query('SheetB'!A5:E100, "SELECT A,B,D,E where E = '" &TODAY()& "'")

E 列的格式如下:MM/DD/YY

这将返回“#N/A”,或“查询完成但输出为空”

如果我在没有 where 条件的情况下运行上述代码,它会按预期返回数据。我不知道为什么,或者问题是什么。任何指导将不胜感激。

【问题讨论】:

    标签: date google-sheets google-sheets-formula google-sheets-query google-query-language


    【解决方案1】:

    这是最简单的方法:

    =query('SheetB'!A5:E100, "SELECT * where E = toDate(now())")
    

    查询使用非常具体的日期格式,因为不同地区的格式大相径庭。如果您有特定日期,以下是您将使用的内容。

    =query('SheetB'!A5:E100, "SELECT A,B,D,E where E = date '"&TEXT(TODAY(),"yyyy-mm-dd")&"'")
    

    请注意,您需要在 'yyyy-mm-dd' 格式之前写入日期。

    https://developers.google.com/chart/interactive/docs/querylanguage

    【讨论】:

      【解决方案2】:

      如果 E 列是有效日期,则为:

      =QUERY({SheetB!A5:B100, SheetB!D5:E100},  
       "where Col4 = date '"&TEXT(TODAY(), "yyyy-mm-dd")&"'", 0)
      

      或:

      =QUERY('SheetB'!A5:E100, 
       "select A,B,D,E
        where E = "&DATEVALUE(TODAY()), 0)
      

      【讨论】:

      • 我猜where E = toDate(now()) vs where E = "&DATEVALUE(TODAY()) 的唯一缺点是第一个卡在 GMT 时区,但看起来更干净。
      猜你喜欢
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2023-03-23
      • 1970-01-01
      • 2020-08-25
      相关资源
      最近更新 更多