首页 > 解决方案 > 将 Big Query Table 架构从字符串 (YYYY-MM-DD HH:MM:SS TIMEZONE) 修改为日期时出现无效日期错误

问题描述

我有一个带有字符串格式列的表,其中值是这样的:

YYYY-MM-DD HH:MM:SS TIMEZONE所以例如2015-08-27 19:42:53 UTC

UTC 是唯一的时区。我想将此字符串列重写为日期列。当我Invalid date error尝试运行以下查询以将结果导出到新表中时

SELECT
  CAST(my_date AS DATE),stuff_here,stuff_here
FROM
  `table`

我应该怎么做才能将此列的类型从字符串正确更改为日期?

标签: sqlgoogle-bigquery

解决方案


您似乎正在尝试编写此逻辑:

select CAST(substr('2015-08-27 19:42:53 UTC', 1, 10) AS DATE)

因为我在纽约,所以我会写:

select date(timestamp('2015-08-27 19:42:53 UTC'), 'America/New_York')

这种区别在我们使用数据时非常重要——格林威治子午线的天数与我们当地的天数之间的差异。


推荐阅读