我有一个带有字符串格式列的表,其中的值如下所示:
例如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`
我应该怎么做才能正确将此列的类型从字符串更改为日期?
您似乎正在尝试编写此逻辑:
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')
这种区别在我们的使用数据中非常重要 - 格林威治子午线与我们当地的日子之间的差异。
尝试:
SELECT CAST(SUBSTR(my_date,1,19) AS DATE,stuff_here,stuff_here
FROM `table`
这假设您对时区部分不感兴趣。