答案here https://stackoverflow.com/questions/41195883/bigquery-standard-sql-error-invalid-timestamp对我没有帮助。尽管我在一个相当简单的更新查询中遇到类似的问题,如下所示(想法是将 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];出生日期字段写入错误
表中有一个 dataOfBirth 字段,但它没有被触及。好奇是否缺少一些基本的东西?感谢您提供任何线索!
在跳转到您的时间戳问题之前 - 首先,我想提一下,您的初始查询很可能不正确 - 我建议您考虑以下一个(假设emailAddresses
重复记录emailAddress
其中的字段)
UPDATE 'customer.customers`
SET emailHashCode = (
SELECT TO_HEX(SHA256(e.emailAddress))
FROM UNNEST(emailAddresses) AS e
LIMIT 1
)
WHERE emailHashCode IS NULL
所以,现在回到你的问题:正如埃利奥特所提到的 - 你需要更新无效的时间戳作为同一查询的一部分。我还没有测试过 - 但请尝试下面
UPDATE 'customer.customers`
SET emailHashCode = (
SELECT TO_HEX(SHA256(e.emailAddress))
FROM UNNEST(emailAddresses) AS e
LIMIT 1
), dateOfBirth = SAFE_CAST(dateOfBirth AS TIMESTAMP)
WHERE emailHashCode IS NULL
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)