Google bigquery 字符串到日期时间转换Bigquery

Google bigquery 字符串到日期时间转换Bigquery,google-bigquery,Google Bigquery,我有一个以字符串格式存储日期的源表,如下所示: 1984-10-28 00:00:00 1988-11-22 00:00:00 1990-01-08 00:00:00 1983-06-22 00:00:00 mk -t xyz.test birthdate:timestamp 然后创建了一个表test1,如下所示: 1984-10-28 00:00:00 1988-11-22 00:00:00 1990-01-08 00:00:00 1983-06-22 00:00:00 mk -

我有一个以字符串格式存储日期的源表,如下所示:

1984-10-28 00:00:00
1988-11-22 00:00:00 
1990-01-08 00:00:00
1983-06-22 00:00:00 
mk -t xyz.test birthdate:timestamp
然后创建了一个表test1,如下所示:

1984-10-28 00:00:00
1988-11-22 00:00:00 
1990-01-08 00:00:00
1983-06-22 00:00:00 
mk -t xyz.test birthdate:timestamp
当我编写一个查询以将源表中的所有日期转换为时间戳并将其保存到test1时,它给出了一个错误:

SELECT FORMAT_UTC_USEC(birthdate) AS birthdate FROM [sourcetable] LIMIT 10

Error: Invalid schema update. Field birthdate has changed type
Job ID: [Project]:job_5P4gFVl4wiYuyXL0vY5VZNtCZOU

如果我做错了什么,请提供帮助

您正在运行一个更新表的查询?您正在使用WRITE_TRUNCATE吗?如果没有,您将使用不同的模式追加到表中。

没关系。我找到了。我忽略了bigquery查询参考文档的很大一部分

时间戳()
将日期字符串转换为时间戳数据类型

选择时间戳(“2012-10-01 01:02:03”)

返回时间:2012-10-01:02:03 UTC

因此,正确的查询如下所示:
从[sourcetable]限制10中选择时间戳(生日)作为生日,WRITE\u TRUNCATE与“Owerwrite table”相同,对吗?如果我这样做,那么它也会覆盖表模式。基本上,我想将日期字符串转换为时间戳,并将其作为时间戳存储到目标表中。您可以从[sourcetable]中选择*,将出生日期格式化为出生日期,但它仍然将“出生日期”字段保存为目标表中的“字符串”类型。我想要目的地表中的“birthdate_str”字段作为“TIMESTAMP”,这样我就可以对它运行查询,如果时间戳只能追溯到1970年,您是否会遇到与出生日期有关的问题?你不想改用DATETIME吗(可以追溯到1000年)?