从 BIG QUERY 中的字符串列创建具有间隔数据类型的列

问题描述 投票:0回答:1

我正在努力弄清楚如何将字符串列转换为间隔数据类型。但我的问题是,我只想将其“小时”到“秒”部分反映在表格上,而不是“Y-M D H:M:S”。我需要它能够在 tableau 中正确创建我的可视化。我如何才能让“H:M:S”反映在桌子上?

这是我的带有注释的代码,它确实给了我时间间隔,但我不知道如何将小时转换为秒:

/将数据类型从字符串更新为间隔/

/第 1 步 - 更改列名称以便稍后转储/ 修改表

scenic-arc-373908.Cyclistic_Data.04_2022
将列ride_length重命名为ride_length_to_dump

/第 2 步 - 添加具有原始名称和所需数据类型的新列名称/ 更改表

scenic-arc-373908.Cyclistic_Data.04_2022
添加列ride_length INTERVAL

/第 3 步 - 删除新列,因为我必须正确设置间隔/ 更改表

scenic-arc-373908.Cyclistic_Data.04_2022
如果存在,则删除列ride_length

/第 4 步 - 更新表以将所有信息从ride_length_to_dump 获取到ride_length/ 更新

scenic-arc-373908.Cyclistic_Data.04_2022
SETride_length = CAST(ride_length_to_dump AS INTERVAL 'H') 其中ride_length_to_dump 不为空

sql google-bigquery sqldatatypes
1个回答
0
投票

导入日期时间

表示时间间隔的输入字符串示例

input_str = "3 天 12:30:45"

解析字符串并提取时间部分

time_portion = datetime.datetime.strptime(input_str, "%d 天 %H:%M:%S").time()

打印(时间部分)

12:30:45

sql:

选择 SUBSTRING(time_interval_column, CHARINDEX(' ', time_interval_column) + 1, LEN(time_interval_column)) 来自你的表名;

注意: 此 SQL 查询将从字符串列中提取时间部分。根据您的数据库系统和列名称调整查询。

© www.soinside.com 2019 - 2024. All rights reserved.