Details
-
Bug
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
10.0.3
-
None
-
None
Description
HOUR() correctly returns hour>23 values in this script:
CREATE TABLE t1 (a TIME); |
INSERT INTO t1 VALUES ('1 00:00:00'); |
SELECT a, HOUR(a) FROM t1; |
+----------+---------+ |
| a | HOUR(a) | |
+----------+---------+ |
| 24:00:00 | 24 |
|
+----------+---------+ |
and in this script:
SELECT HOUR(MAKETIME(24,0,0)); |
+------------------------+ |
| HOUR(MAKETIME(24,0,0)) | |
+------------------------+ |
| 24 |
|
+------------------------+ |
However, it does not work well in some cases:
SELECT HOUR('1 00:00:00'), HOUR(TIME('1 00:00:00')); |
+--------------------+--------------------------+ |
| HOUR('1 00:00:00') | HOUR(TIME('1 00:00:00')) | |
+--------------------+--------------------------+ |
| 0 | 0 |
|
+--------------------+--------------------------+ |
MySQL-5.5 exhibit the same behaviour.
MySQL-5.6 correctly returns "24" for both expressions in the last query.
So this bug should probably be fixed only in 10.0
(while 5.3 and 5.5 should keep the original behaviour).
I'd say, it should be fixed from 5.3 upwards