输入计算到无效时间:大查询中的 24:00:00
Input calculates to invalid time: 24:00:00 in big query
我正在 运行 查询以 24 小时格式显示时间,但是当我 运行 查询时,它计算的时间超过 23:59:59,而不是过去并将时间更改为00:00:00 它给我一个错误提示 Input calculates to invalid time: 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 或更远
这适用于 time
数据类型:
select time_add(cast('23:00:00' as time), interval 120 minute)
我建议您将此结构用于表达式。
以下适用于 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`
我正在 运行 查询以 24 小时格式显示时间,但是当我 运行 查询时,它计算的时间超过 23:59:59,而不是过去并将时间更改为00:00:00 它给我一个错误提示 Input calculates to invalid time: 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 或更远
这适用于 time
数据类型:
select time_add(cast('23:00:00' as time), interval 120 minute)
我建议您将此结构用于表达式。
以下适用于 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`