如何在查询中使用带有LIKE的日期?

问题描述 投票:0回答:3

我有一个谷歌表单(它提供给谷歌表格)供用户输入信息。 其中一个字段是 datepicker,其格式为

mm/dd/yyyy

我有一本包含几张纸的工作簿。 一张表(选项卡)捕获用户从 Google 文档表单中输入的内容。 它称为表单响应 1(例如)

在另一个选项卡上,我尝试根据来自 G 列的月份提取数据。

例如,在第一个单元格中,我尝试过这样的公式(尝试选择从

12/1/2025
12/31/2025
的所有 12 月答案):

=query('Form Responses 1' !A2:N, "Select * Where G like '12')

=query('Form Responses 1' !A2:N, "Select * Where G >= '12/1/2025' and <= '12/31/2025')

任何人都知道如何获得 LIKE '12%' 来处理日期选择器字段答案 (我知道它不是字符串) 或其他不使用 LIKE 的方法,它将返回该月中包含 12 的每个答案,或者毫米位置?

google-sheets google-sheets-formula google-forms google-query-language
3个回答
2
投票

假设您的日期选择器单元格是

B2
,然后使用以下
QUERY()
公式 -

=QUERY('Form Responses 1' !A2:N,"select * where G>= date '" &TEXT(B2,"yyyy-mm-dd")& "' and G<= date '" & TEXT(EOMONTH(B2,0),"yyyy-mm-dd")& "'")

如果您想手动输入日期,请尝试-

=QUERY('Form Responses 1' !A2:N,"select * where G>= date '" &TEXT(DATE(2025,12,1),"yyyy-mm-dd")& "' and G<= date '" & TEXT(DATE(2025,12,31),"yyyy-mm-dd")& "'")

1
投票

(尝试选择从12/1/2025到12/31/2025的所有12月答案)

=query('Form Responses 1' !A2:N, "Select * Where G like '12')

要使用硬编码参数来做到这一点,请使用

year()
month()
,如下所示:

=query('Form Responses 1' !A2:N, "where year(G) = 2025 and month(G)+1 = 12", 0)

要获取与单元格

D1
中的日期同一月份的行,请使用以下命令:

=query( 
  'Form Responses 1' !A2:N, 
  "where year(G) = " & year(D1) & 
  "and month(G)+1 = " & month(D1), 
  0 
)

参见 query()year()month()


0
投票

需要注意的是,查询内部使用

yyyy-MM-dd
格式来表示
date
,无论您在外部使用什么格式(只要它被 Google Sheets 识别为日期格式)。所以,
like
会像这样工作:

任何一年的 12 月:
"Select * Where G like '%-12-%'
2024 年 12 月:
"Select * Where G like '2024-12-%'
2024年12月10日-19日:
"Select * Where G like '2024-12-1_'
2020-2029,任意月份,20 日至 29 日:
"Select * Where G like '202_-%-2_'
任何地方有数字 12 的日期(2012 年或 2025 年 12 日或 12 月):
"Select * Where G like '%12%'

请注意,查询中的标量函数(如

month
)提供不同的控制。

任何一年的12月(第11个月,月份从0(不是1)开始):
"Select * Where month(G)=11
© www.soinside.com 2019 - 2024. All rights reserved.