sql - BigQuery 时间戳(以毫米为单位):ss

标签 sql google-analytics google-bigquery

我有一个查询,它为我提供以下格式的时间戳:

2020-10-25 09:58:21.479 世界标准时间

2020-10-25 10:18:22.737105 世界标准时间

我想做的是计算两个时间之间的差异并以 mm:ss 格式显示?对于我的示例,输出为 20:01

SELECT
MIN(ts) AS session_start_time,
MAX(ts) AS session_end_time,
FROM(
SELECT
  event_date AS date,
  user_pseudo_id AS user_id,
  event_name,
  key,
  value,
  TIMESTAMP_MICROS(event_timestamp) AS ts,
FROM
  `table _name`,
  UNNEST (event_params) AS event_params
WHERE
  _TABLE_SUFFIX BETWEEN "20201025"
  AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY))
  AND event_name != 'view_search_results'
  AND user_pseudo_id = '4B132ED3654C4293B9820D8203282B0D'
ORDER BY ts ASC

最佳答案

您可以使用以下方法获取一次结果:

select time_add(time '00:00:00', interval timestamp_diff(max(ts), min(ts), millisecond) millisecond)

然后,如果您希望将其作为特定格式的字符串:

select time_format('%M:%S', time_add(time '00:00:00', interval timestamp_diff(max(ts), min(ts), millisecond) millisecond))

关于sql - BigQuery 时间戳(以毫米为单位):ss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64552234/

相关文章:

sql - 使用 DBIx::Class 预取相关行或不预取,也许使用 OUTER LEFT JOIN?

backbone.js - 谷歌分析(通过标签管理器)在第一页加载后失去对 AdWords 访问者的跟踪

java - Cloud Dataflow BQ 输出因 TLS 握手错误而挂起作业

google-bigquery - 如何在Bigquery上 "Save as Table"并定义表的位置?

sql - “party model”的原理和好处是什么?

mysql - 如何在不在where子句中添加表名或表别名的情况下避免 "Ambiguous field in query"

mysql - 错误 : an expression of non-boolean type specified

javascript - 在 Opencart 中使用用户 ID 实现 Google Analytics

url - Google Analytics-页面的完整URL

mysql - BigQuery - 如何创建一个新列,其中计算包括新列本身?