输入计算到无效时间:大查询中的 24:00:00

Posted

技术标签:

【中文标题】输入计算到无效时间:大查询中的 24:00:00【英文标题】:Input calculates to invalid time: 24:00:00 in big query 【发布时间】:2019-02-11 17:16:15 【问题描述】:

我正在运行查询以 24 小时格式显示时间,但是当我运行查询时,它计算的时间超过 23:59:59,而不是过去并将时间更改为 00:00:00,它给了我错误提示输入计算到无效时间:24:00:00。

 FORMAT_TIME('%T',
TIME(DIV(sc.timestart, 60),
  MOD(sc.timestart, 60),
  0)) AS TimeFrom,

FORMAT_TIME('%k',
TIME(DIV(sc.timestart + sc.timeduration, 60),
  MOD(sc.timestart + sc.timeduration, 60),
0)) AS TimeTo

错误输入计算到无效时间:24:00:00

 Row ClassID    TimeFrom    timeduration     Timeto_shouldBE
 1  7786918     23:00:00        60   
 2  339893      23:00:00        30   
 3  4665919     23:00:00        60   
 4  7384955     23:00:00        60   
 5  6863540     23:30:00        30   
 6  2891444     23:30:00        30  

试图从 23:00:00 到 00:00:00 或以后计算它

【问题讨论】:

【参考方案1】:

以下是 BigQuery 标准 SQL

#standardSQL
SELECT ClassID, 
  TIME(TIMESTAMP_ADD(TIMESTAMP(CURRENT_DATE()), INTERVAL timestart MINUTE)) AS TimeFrom,
  timeduration,
  TIME(TIMESTAMP_ADD(TIMESTAMP(CURRENT_DATE()), INTERVAL timestart + timeduration MINUTE)) AS TimeTo
FROM `project.dataset.table`

【讨论】:

【参考方案2】:

这适用于 time 数据类型:

select time_add(cast('23:00:00' as time), interval 120 minute)

我建议你使用这种结构来表达。

【讨论】:

以上是关于输入计算到无效时间:大查询中的 24:00:00的主要内容,如果未能解决你的问题,请参考以下文章

日期时间查询 SQL SERVER

计算谷歌大查询中的每周留存率

查询中的 SQL 无效列名检测

mysql 时间排序问题

Mongodb:基于 ISODate 格式的时间查询

vos套餐设置