Details
Description
mysql> SELECT CAST(DATE'2001-01-01' AS TIME);
+--------------------------------+
| CAST(DATE'2001-01-01' AS TIME) |
+--------------------------------+
| 00:00:00 |
+--------------------------------+
1 row in set (0.00 sec)
mysql> DROP PROCEDURE IF EXISTS p1;
Query OK, 0 rows affected (0.02 sec)
mysql> DELIMITER |;
mysql> create procedure p1()
-> begin
-> declare t date;
-> set t=date'2001-01-01';
-> select cast(t as time);
-> end|;
Query OK, 0 rows affected (0.04 sec)
mysql> CALL p1|;
+-----------------+
| cast(t as time) |
+-----------------+
| 00:20:01 |
+-----------------+
1 row in set (0.00 sec)
Query OK, 0 rows affected, 1 warning (0.00 sec)
The two SELECT queries should return the same result.
The problem happens because Item_splocal::get_date() points
to the generic Item::get_date(), so the conversion happens through a
temporary string value: time -> string -> date.
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions