我正在尝试根据年龄和输入我们系统的日期来计算某人的出生年份。如何将age字段用作时间间隔来使用Date_Sub函数?
UPDATE `test.table`
SET BirthYear = DATE_SUB(DateEntered, INTERVAL Age YEAR)
WHERE BirthYear IS NULL;
当我尝试这个查询时,我得到了以下错误:
Interval value must be coercible to INT64 type at [2:50]
我尝试将年龄字段转换为INT64:
No matching signature for function DATE_SUB for argument types: DATETIME, INTERVAL INT64 DATE_TIME_PART. Supported signature: DATE_SUB(DATE, INTERVAL INT64 DATE_TIME_PART) at [2:21]
我的表如下所示,其中BirthYear和DateEntered为DateTime,年龄字段为字符串:
BirthYear DateEntered Age
NULL 2016-09-18T04:00:00 10
NULL 2020-09-18T00:00:00 7
NULL 2018-03-08T00:00:00 6.5
发布于 2020-10-15 01:36:47
请改用DATETIME_SUB
DATETIME_SUB(DateEntered, INTERVAL SAFE_CAST(SAFE_CAST(Age AS FLOAT64) AS INT64) YEAR)
https://stackoverflow.com/questions/64358668
复制相似问题