Ввод рассчитывает на неверное время: 24:00:00 в большом запросе - PullRequest
0 голосов
/ 11 февраля 2019

Я выполняю запрос, чтобы вывести время в 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 или дальше

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Ниже для BigQuery Standard 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`
0 голосов
/ 11 февраля 2019

Это прекрасно работает с типом данных time:

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

. Я бы предложил использовать эту структуру для выражения.

...