答案here对我没有帮助。虽然我在一个相当简单的更新查询中遇到类似的问题,如下所示(想法是将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纪元,无法返回-62135600400000000微秒的无效时间戳值。有效时间戳值的范围是[0001-01-1 00:00:00,9999-12-31 23:59:59.999999];写作字段dateOfBirth中的错误
表格中有一个dataOfBirth字段,但未被触及。好奇如果缺少基本的东西?谢谢你的任何线索!
答案 0 :(得分:0)
我遇到了同样的问题,最简单的方法是修复所有具有错误dataOfBirth
值的行。
我使用SAFE_CAST
来执行此操作,请尝试以下操作:
SAFE_CAST(dataOfBirth AS STRING) AS dataOfBirthString
希望有帮助!
答案 1 :(得分:0)
在讨论时间戳问题之前-首先,我想提一下您的初始查询很可能不正确-我建议您考虑考虑以下问题(假设emailAddresses
与{{ 1}}字段)
emailAddress
因此,现在回到您的问题:如Elliott所述-您需要在同一查询中更新无效时间戳。我尚未测试-但请尝试以下
UPDATE 'customer.customers`
SET emailHashCode = (
SELECT TO_HEX(SHA256(e.emailAddress))
FROM UNNEST(emailAddresses) AS e
LIMIT 1
)
WHERE emailHashCode IS NULL