Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql BigQuery:选择列值包含字符串的行_Sql_Google Bigquery - Fatal编程技术网

Sql BigQuery:选择列值包含字符串的行

Sql BigQuery:选择列值包含字符串的行,sql,google-bigquery,Sql,Google Bigquery,我想知道当一个表包含一个特定的子字符串时,如何通过一个特定的列来过滤该表 以下是我的表格示例: 我想获得列tsBegin包含2020-08-04的行,可能需要类似以下内容: SELECT * FROM mytable where '2020-08-04' in tsBegin 日期操作: where date(tsBegin) = date '2020-08-04' 名为tsBegin的列不应该是字符串列,因此您只需要日期 如果tsBegin是一个字符串,我建议您将其转换为时间戳使用日期函

我想知道当一个表包含一个特定的子字符串时,如何通过一个特定的列来过滤该表

以下是我的表格示例:

我想获得列
tsBegin
包含
2020-08-04
的行,可能需要类似以下内容:

SELECT * FROM mytable
where '2020-08-04' in tsBegin
日期操作:

where date(tsBegin) = date '2020-08-04'
名为
tsBegin
的列不应该是字符串列,因此您只需要日期


如果
tsBegin
是一个字符串,我建议您将其转换为
时间戳

使用日期函数和半开间隔:

select * 
from mytable
where tsbegin >= date '2020-08-04'
  and tsbegin < date_add(date '2020-08-04', interval 1 day)
选择*
从mytable
其中tsbegin>=日期“2020-08-04”
和tsbegin<日期添加(日期'2020-08-04',间隔1天)

尽管键入的长度稍长,但直接对文字值进行过滤通常比在被过滤的列上应用日期函数快得多,如在
where date(tsbegin)=date“2020-08-04”

中,您的列看起来像一个
时间戳,而不是一个字符串。您不想对它执行字符串操作。是的,它是一个时间戳,但当我使用子字符串时,您的答案仍然有效并对其进行过滤:)