| Bug #119432 | Inconsistent time conversion behaviors between text and integer | ||
|---|---|---|---|
| Submitted: | 20 Nov 2025 8:47 | Modified: | 7 Dec 2025 21:44 |
| Reporter: | John Jove | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Data Types | Severity: | S1 (Critical) |
| Version: | 8.0 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[20 Nov 2025 9:14]
John Jove
The version is 8.4.6
[21 Nov 2025 3:30]
John Jove
I try the case 4 in MariaDB 11.8.3, which returns 838:59:59 as expected.
-- case 4
DROP TABLE t1;
CREATE TABLE t1 (c1 BIGINT);
INSERT INTO t1 VALUES (9941110);
SELECT CAST(c1 AS TIME) FROM t1; -- {838:59:59}
[7 Dec 2025 21:44]
Roy Lyseng
Verified as described.

Description: I got the following four cases to test time conversion. When the converted value is accepted by the time data type, both text and integer column successfully return the expected results, like case 1and case 2. However, when an overflow value is stored, the text column returns a truncated value, while the integer column returns NULL, as shown in case 3 and case 4. I may expect that the consistent results should be returned, either both the truncated value or NULL value. How to repeat: -- case 1 DROP TABLE t1; CREATE TABLE t1 (c1 CHAR(20)); INSERT INTO t1 VALUES (8385959); SELECT CAST(c1 AS TIME) FROM t1; -- {838:59:59} -- case 2 DROP TABLE t1; CREATE TABLE t1 (c1 BIGINT); INSERT INTO t1 VALUES (8385959); SELECT CAST(c1 AS TIME) FROM t1; -- {838:59:59} -- case 3 DROP TABLE t1; CREATE TABLE t1 (c1 CHAR(20)); INSERT INTO t1 VALUES (9941110); SELECT CAST(c1 AS TIME) FROM t1; -- {838:59:59} -- case 4 DROP TABLE t1; CREATE TABLE t1 (c1 BIGINT); INSERT INTO t1 VALUES (9941110); SELECT CAST(c1 AS TIME) FROM t1; -- {NULL}