- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人想知道如何让 BigQuery 中的这些奇怪的时间字符串看起来像 Google Analytics 中的那些?
它们由[任意小时数]:[分钟]:[秒]
组成,这就是正常时间函数实际上不起作用的原因。
例子:
最佳答案
Would be cool if anyone finds a solution with fewer functions involved and posts it here
唯一让我(总是)有点头晕的是那些CAST
、FLOOR
和MOD
的使用
所以,下面是转换为 ga 格式的更美观(从我的角度来看)的版本
先举个简单的例子——我认为这是不言自明的
#standardSQL
WITH `table` AS (
SELECT 1925 AS seconds UNION ALL
SELECT 3600 UNION ALL
SELECT 86430 UNION ALL
SELECT 1111111925
)
SELECT seconds,
FORMAT('%02d:%s', hours, FORMAT_TIMESTAMP('%M:%S', ts)) as ga_style
FROM `table`,
UNNEST([STRUCT(
TIMESTAMP_SECONDS(seconds) AS ts,
TIMESTAMP_DIFF(TIMESTAMP_SECONDS(seconds), TIMESTAMP_SECONDS(0), HOUR) AS hours
)])
结果为
Row seconds ga_style
1 1,925 00:32:05
2 3,600 01:00:00
3 86,430 24:00:30
4 1,111,111,925 308642:12:05
最后,下面是用 SQL UDF 包装并应用于与 OP 答案相同的脚本的上述逻辑
CREATE TEMP FUNCTION time_str(seconds INT64) AS ((
SELECT FORMAT('%02d:%s', hours, FORMAT_TIMESTAMP('%M:%S', ts))
FROM UNNEST([STRUCT(
TIMESTAMP_SECONDS(seconds) AS ts,
TIMESTAMP_DIFF(TIMESTAMP_SECONDS(seconds), TIMESTAMP_SECONDS(0), HOUR) AS hours
)])
));
SELECT
device.browser,
time_str(SUM(totals.timeOnSite)) timeOnSite
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`
GROUP BY 1
ORDER BY SUM(totals.timeOnSite) DESC
或者进一步简化:
CREATE TEMP FUNCTION time_str(seconds INT64) AS (
FORMAT('%02d:%s',
TIMESTAMP_DIFF(TIMESTAMP_SECONDS(seconds), TIMESTAMP_SECONDS(0), HOUR),
FORMAT_TIMESTAMP('%M:%S', TIMESTAMP_SECONDS(seconds))
)
);
SELECT
device.browser,
time_str(SUM(totals.timeOnSite)) timeOnSite
FROM `google.com:analytics-bigquery.LondonCycleHelmet.ga_sessions_20130910`
GROUP BY 1
ORDER BY SUM(totals.timeOnSite) DESC
结果为
Row browser timeOnSite
1 Chrome 00:32:05
2 Firefox 00:12:40
3 Android Browser 00:05:04
4 Safari 00:03:28
5 Internet Explorer 00:00:26
注意:尽管我的重点主要放在美学方面——同时这个版本有 6 个功能,而原始帖子中有 8 个——如果它真的很重要的话:o)
关于google-analytics - BigQuery 时间字符串,如 Google Analytics H*HH :MM:SS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49282350/
如标题所示,我有一个问题。我需要将 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
我是一名优秀的程序员,十分优秀!