- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 Google Analytics(分析)表格中有一个名为“视频时长”的自定义维度。数据是字符串值,但有些采用以下 3 种格式:
1) HH:MM:SS(例如,1:54:55)
2) MM:SS(例如,2:26)
3) 秒数(例如,对于长度为 2:26 的视频,长度为 146)
CAST
才能INT64
,这样我就可以将值相加以获得字符串。 查询有效,但是当我运行查询时,出现“无法解析输入字符串”的错误
select old_video_length,
case
when videoLength like "%:%" and length(videoLength) > 7 then cast(cast(parse_time("%E*S",videoLength) as string) as int64)+cast(cast(parse_time("%M",videoLength) as string) as int64)*60+cast(cast(parse_time("%H",videoLength) as string) as int64)*3600
when videoLength like "%:%" and length(videoLength) between 6 and 7 then cast(cast(parse_time("%E*S",concat("0",videoLength)) as string) as int64)+cast(cast(parse_time("%M",concat("0",videoLength)) as string) as int64)*60+cast(cast(parse_time("%H",concat("0",videoLength)) as string) as int64)*3600
when videoLength like "%:%" and length(videoLength) <= 5 then cast(cast(parse_time("%E*S",concat("00:",videoLength)) as string) as int64)+cast(cast(parse_time("%M",concat("00:",videoLength)) as string) as int64)*60+cast(cast(parse_time("%H",concat("00:",videoLength)) as string) as int64)*3600
else cast(videoLength as int64) end as video_length_converted
from vid_length_table
Ideally, I'd like the table to look like this:
old_video_length | video_length_converted
1:54:55 6895
2:26 146
146 146
最佳答案
以下是 BigQuery 标准 SQL
#standardSQL
SELECT videoLength AS old_video_length,
CASE
WHEN REGEXP_CONTAINS(videoLength, r':\d\d:\d\d$') THEN TIME_DIFF(SAFE.PARSE_TIME('%T', videoLength), TIME '00:00:00', SECOND)
WHEN REGEXP_CONTAINS(videoLength, r':\d\d$') THEN TIME_DIFF(SAFE.PARSE_TIME('%M:%S', videoLength), TIME '00:00:00', SECOND)
ELSE SAFE_CAST(videoLength AS INT64)
END AS video_length_converted
FROM `project.dataset.vid_length_table`
您可以使用您问题中的样本数据进行测试,如下例所示
#standardSQL
WITH `project.dataset.vid_length_table` AS (
SELECT '1:54:55' videoLength UNION ALL
SELECT '2:26' UNION ALL
SELECT '146'
)
SELECT videoLength AS old_video_length,
CASE
WHEN REGEXP_CONTAINS(videoLength, r':\d\d:\d\d$') THEN TIME_DIFF(SAFE.PARSE_TIME('%T', videoLength), TIME '00:00:00', SECOND)
WHEN REGEXP_CONTAINS(videoLength, r':\d\d$') THEN TIME_DIFF(SAFE.PARSE_TIME('%M:%S', videoLength), TIME '00:00:00', SECOND)
ELSE SAFE_CAST(videoLength AS INT64)
END AS video_length_converted
FROM `project.dataset.vid_length_table`
结果
Row old_video_length video_length_converted
1 1:54:55 6895
2 2:26 146
3 146 146
关于sql - 在 HH :MM:SS format to seconds in Google BigQuery (Standard SQL) 中转换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55385990/
如标题所示,我有一个问题。我需要将 LocalDataTime yyyy-MM-ssThh-mm-ss 解析为 LocalDataTime yyyy-MM-ss hh-mm-ss 但是当我这样做时 S
我使用“cin”从输入流中读取单词,比如 int main( ){ string word; while (cin >> word){ //do sth on t
我有一个 Java 函数可以将秒数转换为特定格式 (hh:mm:ss): public static String formatChronometer(long seconds) { retu
(学习C++)我一直在看下面的代码部分: stringstream ss; // more code ss.clear(); ss.str(""); 为什么 ss.str(""); 调用时 ss.cl
我有一个从 GPS 跟踪器收集的数据集。数据中的总时间应为 mm:ss。但 Excel 将其解释为小时和分钟。 如何使用公式将其转换为分钟和秒?在下面的示例中,32 应该是 32 分钟,15 应该是
我的时间格式如下 public static final String TIME_FORMAT = "HH:mm:ss.SS"; edition.getEditionDate().format(T
我正在尝试对以下示例进行转换: 原始时间:1:03.091 转换时间:63.09 我做了一些研究,发现我可以将分钟添加到秒,但不知道如何添加毫秒。以下是我迄今为止所做的事情: a = "01:40.4
我有一个包含秒数的 float8,即 65.455。我试图在 View 中设置列的格式,使其显示为 1:05.455。 像这样使用 postgres 命令:TO_CHAR((user_data.tot
我有 vba 问题,我一直试图找到答案很长时间。我有来自众多客户的大量电子表格,我在这些电子表格上运行宏,我是编码新手,并且能够大致弄清楚我需要做什么。我的客户每月向我们发送数据,并且每个月的行数都在
我正在尝试编写一个正则表达式,允许输入以分钟、秒、十分之一和百分之一为单位的时间。我遇到的问题是,还应该允许用户输入仅秒和十分之一或秒、十分之一和百分之一的时间。变化如下: 分:秒:日分:秒:日毫米:
我想知道输入“+1”是什么意思 scanf("%s", ss+1) 其中 ss 是字符串输入。 我正在解决 codechef 上的一个问题,当我尝试阅读其他一些解决方案以了解其他可能的解决方案/方法时
我想验证 jquery 函数接收的某个字符串。 这是我到目前为止所做的 var duration=$('#duration').val(); if(//string validation?) {
Porter Stemmer algorithm 的意义何在?是否有将 SS 转换为 SS 的规则? 最佳答案 假设规则 SS->SS 不在算法中。然后像 caress 这样的词根本不会被识别,而且算
有谁知道,是否可以在 mpv.conf 中设置包括毫秒在内的默认显示时间格式? 现在我需要点击时间切换到毫秒,因为手册中的选项 ,,timems'' https://mpv.io/manual/mas
我有一个按以下方式计算的变量 currTime: long currTime = System.currentTimeMillis() - start; //where start is the st
我正在尝试编写将秒数转换为以下格式的逻辑: HH:MM:SS:MS,其中 MS 为毫秒 HH:MM:SS;F,其中 F 是帧 (不仅仅是 HH:MM:SS,因此这个问题与 Stackoverflow
我正在使用以下代码以“dd/MM/yyyy HH:mm:ss.SS”格式获取日期。 import java.text.SimpleDateFormat; import java.uti
我有一天中每一分钟的数据点: import numpy as np data = np.random.random(1440,) # I can represent minutes as intege
这是查询的工作版本。我只需要用 AS 保存新值。谢谢 Andy。 $Wednesday = mysqli_query($conn, "SELECT *,TIME_FORMAT(class_start,
我有下表没有时区的时间戳(6) 2000/01/01 0:00:00 2000/01/01 10:00:00 2000/01/01 04:00:00 我想得到hh:mm:ss我想要的结果如下 0:00
我是一名优秀的程序员,十分优秀!