>我在bigquery中运行下面的查询。TS_Estimated_Dispatch的数据类型为字符串。
SELECT
Order_Number
FROM
`MYTABLE`
WHERE
Customer_Country = 'ABC'
AND Partner_Country = 'DEF'
AND SO_Item_Status IN (1,2,3)
AND TIMESTAMP(PARSE_DATE('%Y-%m-%d',
TS_Estimated_Dispatch )) > '2018-04-20'
错误:查询失败错误:字符串"2018-04-22 17:00:00"中的非法非空格尾随数据"1">
不确定你到底想做什么。您已经在此字符串中具有可比较的日期格式:2018-04-22 17:00:00
,因此如果您在比较中使用它就足够了
select '2018-04-22 17:00:00'>'2018-04-21';
select TS_Estimated_Dispatch > '2018-04-20';
另一方面,解析字符串时,始终需要精确长度,因此,如果在模式 %Y-%m-%d 中使用了 10 个字符,则需要在长度相似的字符串上使用。
select PARSE_DATE('%Y-%m-%d', substr('2008-12-25 22:30:00',1,10))
select PARSE_DATE('%Y-%m-%d', substr(TS_Estimated_Dispatch ,1,10)) > DATE('2008-12-23')
这将返回DATE
因此为了进行比较,您需要与 DATE 字段进行比较,而不是任意写入的字符串。