【发布时间】:2018-11-27 11:46:07
【问题描述】:
SELECT alertid,
ackuid,
severity,
ticketid,
From_unixtime(display_ts) AS Detection_Time,
From_unixtime(ack_ts) AS Ack_Time,
Round(( ack_ts - display_ts ) / 60) AS MTTA_MINS,
IF (Round(( ack_ts - display_ts ) / 60) > 15, 1, 0) AS SLA_MISSED
FROM alerts_test
WHERE display_ts > Unix_timestamp(Now() - INTERVAL 26 day)
ORDER BY From_unixtime(display_ts);
错误 1690 (22003):BIGINT UNSIGNED 值超出范围 '(
dba.DBA_IRIS_ALERTS.ack_ts-dba.DBA_IRIS_ALERTS.display_ts)'
如何解决这个错误?尤其是在这种情况下,它失败了。
round((ack_ts-display_ts)/60) as MTTA_MINS,
IF ( round((ack_ts-display_ts)/60) > 15, 1, 0) as SLA_MISSED
样本数据
+----------------------------------+-----------------+----------+-------------+---------------------+---------------------+-----------+------------+
| alertid | ackuid | severity | ticketid | Detection_Time | Ack_Time | MTTA_MINS | SLA_MISSED |
+----------------------------------+-----------------+----------+-------------+---------------------+---------------------+-----------+------------+
| xxxxxx | him | 5 | NULL | 2018-11-01 00:03:23 | 2018-11-01 00:06:18 | 3 | 0 |
| xxxxxx | him | 5 | NULL | 2018-11-01 00:11:08 | 2018-11-01 00:17:45 | 7 | 0 |
【问题讨论】:
-
对这个错误有什么帮助吗?
-
请在问题中添加一些示例数据。或者设置一个小提琴:db-fiddle.com 不看数据很难弄清楚。
-
您添加到问题中的不是样本数据。因为,
ack_ts和display_ts列似乎存储了 Unix 时间戳(秒)值。您能否将CREATE TABLE语句结果添加到问题中。执行SHOW CREATE TABLE alerts_test并将此查询的结果发布到问题
标签: mysql