sql - 将 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`
我应该怎么做才能将此列的类型从字符串正确更改为日期?
解决方案
您似乎正在尝试编写此逻辑:
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')
这种区别在我们使用数据时非常重要——格林威治子午线的天数与我们当地的天数之间的差异。
推荐阅读
- matlab - 从另一个文件夹将 Simulink 模型打开到内存中
- python - python:如何解释切片的索引
- python - 为什么当我输入另一个型号(如 Model X)时,这个程序只会显示 Model S 的总价格?
- google-sheets - 谷歌表格 5000 万个单元格计数工作
- html - 在 Next.js 中,如何创建一个覆盖整个浏览器窗口的 bg 图像
- docker - Docker 无法启动守护进程:未安装设备 cgroup [Debian GNU/Linux 9 (stretch)] armv7l
- azure-functions - 从只能访问有限虚拟网络的 Azure 存储帐户订阅事件的方法是什么?
- firebase - 我可以将我的 Firebase 存储设置在与我的 Firestore 和云功能不同的区域吗?
- go - Golang Web 服务器的 Heroku 错误:Web 进程在启动后 60 秒内无法绑定到 $PORT
- javascript - Firebase:自定义声明要求我的用户注销并登录才能生效?