Google bigquery BigQuery标准SQL错误,未触及日期字段时时间戳无效

Google bigquery BigQuery标准SQL错误,未触及日期字段时时间戳无效,google-bigquery,Google Bigquery,答案对我没有帮助。虽然我在一个相当简单的更新查询中遇到了类似的问题,但下面的想法是将sha-256编码添加到遗留记录中 UPDATE 'customer.customers` SET emailHashCode = (SELECT TO_HEX(SHA256(e.emailAddress)) FROM `customer.customers`, UNNEST(emailAddresses) AS e LIMIT 1) WHERE emailHashCode IS NULL 我得到这个错误

答案对我没有帮助。虽然我在一个相当简单的更新查询中遇到了类似的问题,但下面的想法是将sha-256编码添加到遗留记录中

UPDATE 
'customer.customers` 
SET emailHashCode = (SELECT 
TO_HEX(SHA256(e.emailAddress))
FROM
`customer.customers`,
UNNEST(emailAddresses) AS e LIMIT 1)
WHERE emailHashCode IS NULL
我得到这个错误:

相对于Unix历元,无法返回-62135600000000微秒的无效时间戳值。有效时间戳值的范围为[0001-01-1 00:00:00,9999-12-31 23:59:59.99999];写入出生日期字段时出错


表中有一个dataOfBirth字段,但它没有被触动。好奇是否缺少一些基本的东西?谢谢你的提示

我也遇到了同样的问题,最简单的方法是修复所有带有坏dataOfBirth值的行

我使用SAFE_CAST来完成此操作,尝试以下操作:

SAFE_CAST(dataOfBirth AS STRING) AS dataOfBirthString

希望有帮助中重复记录的。 更新“customer.customers” 设置emailHashCode= 选择以_HEXSHA256e.emailAddress 从未发送的邮件地址发送到电子邮件 限制1 其中emailHashCode为NULL 那么,现在回到您的问题:正如Elliott所提到的,您需要更新无效的时间戳作为同一查询的一部分。我还没有测试,但请在下面尝试

更新“customer.customers” 设置emailHashCode= 选择以_HEXSHA256e.emailAddress 从未发送的邮件地址发送到电子邮件 限制1 ,dateOfBirth=SAFE_CASTdateOfBirth作为时间戳 其中emailHashCode为NULL
简短的总结没有时间给出实际的答案,因为您需要更新无效的时间戳作为同一查询的一部分,或者在前面的查询中。谢谢@ElliottBrossard,修复数百万行的时间戳不是我的选择。使用“ParDo”函数通过数据流完成。