我在一个大查询表中有一个日期列(格式为YYYY-MM-DD
)。我无法将where
子句应用于日期列。我使用以下查询:
SELECT * FROM [dataSet_Id.TableName] where CR_DT=DATE("2016-01-01")
SELECT * FROM [dataSet_Id.TableName] where CR_DT=DATE("2016-01-01") where CR_DT=20160101
那我该怎么办?
答案 0 :(得分:3)
我搞定了,如果我使用标准SQL方言而不是旧版SQL
用于处理where子句中的日期的示例查询:
SELECT * from demoschema.demotable where dob = date('2016-08-10');
SELECT * from demoschema.demotable where dob = '2016-08-11';
如果您想使用标准SQL方言,只需转到显示选项,然后您会找到用于启用的 SQL版本字段标准SQL。 .Dialect。
答案 1 :(得分:1)
如果CR_DT
列的类型为String
,则:
SELECT * FROM [dataSet_Id.TableName] where CR_DT = '2016-01-01'
如果CR_DT
列的类型为TIMESTAMP
,则:
SELECT * FROM [dataSet_Id.TableName] where DATE(CR_DT) = DATE(timestamp('2016-01-01'))