Sql 谷歌查询-日期范围过滤器,可同时使用:日期和无日期

Sql 谷歌查询-日期范围过滤器,可同时使用:日期和无日期,sql,google-sheets,Sql,Google Sheets,我有一个有效的查询: =query('Database'!A1:AD979,"select* where (J > date '"&TEXT(A2,"yyyy-MM-dd")&"' and J < date '"&TEXT(B2,"yyyy-MM-dd")&"') and AD = 'Active'") =query('Database'!A1:AD979,“select*where(J>date'”&TEXT(A2,“yyyy-MM-dd”)&“和

我有一个有效的查询:

=query('Database'!A1:AD979,"select* where (J > date '"&TEXT(A2,"yyyy-MM-dd")&"' and J < date '"&TEXT(B2,"yyyy-MM-dd")&"') and AD = 'Active'")
=query('Database'!A1:AD979,“select*where(J>date'”&TEXT(A2,“yyyy-MM-dd”)&“和J
我有这个过滤器:

  • 开始日期=A2
  • 结束日期=B2
当我确实需要使用一个日期范围时,查询可以完美地工作。但是,当我离开过滤器时,没有日期,目的是查看数据库中与“活动”匹配的所有值,则不会显示任何数据

如何保留空的筛选日期,但仍能看到与第3个参数匹配的值,在本例中为“Active”


谢谢

我建议使用此查询,这样,如果您删除任何一个日期,它都将充当通配符

=query(Database!A1:AD979,"select* where (J > date '"&TEXT(A2,"yyyy-MM-dd")&"' or '"&A2&"' = '') and (J < date '"&TEXT(B2,"yyyy-MM-dd")&"' or '"&B2&"' = '') and AD = 'Active'")
=query(数据库!A1:AD979,“选择*其中(J>date'”&文本(A2,“yyyy-MM-dd”)&“或”&文本(A2,“yyyy-MM-dd”)和(J
我可以让查询使用空白的起始日期,但不能使用空白的截止日期。但是,我发现它可以很好地与过滤器配合使用,请尝试以下方法:

=filter(Database!$A1:$AD, Database!J1:J>A2,IF(B2<>"",Database!J:J<B2,Database!J1:J<max(Database!J1:J)),Database!AD1:AD="Active")
=过滤器(数据库!$A1:$AD,数据库!J1:J>A2,如果(B2“”,数据库!J:J