[MDEV-17928] Conversion from TIMESTAMP to VARCHAR SP variables does not work well on fractional digits Created: 2018-12-07  Updated: 2018-12-08  Resolved: 2018-12-08

Status: Closed
Project: MariaDB Server
Component/s: Data types, Stored routines
Affects Version/s: 10.2, 10.3, 10.4
Fix Version/s: 10.4.1

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Alexander Barkov
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-13995 MAX(timestamp) returns a wrong result... Closed

 Description   

DROP PROCEDURE IF EXISTS p1;
DELIMITER $$
CREATE PROCEDURE p1()
BEGIN
  DECLARE ts10 TIMESTAMP(1) DEFAULT NOW();
  DECLARE ts16 TIMESTAMP(1) DEFAULT NOW(6);
  DECLARE dt10 DATETIME(1) DEFAULT NOW();
  DECLARE dt16 DATETIME(1) DEFAULT NOW(6);
 
  DECLARE vts10 VARCHAR(32) DEFAULT ts10;
  DECLARE vts16 VARCHAR(32) DEFAULT ts16;
  DECLARE vdt10 VARCHAR(32) DEFAULT dt10;
  DECLARE vdt16 VARCHAR(32) DEFAULT dt16;
 
  SELECT vts10, vts16, vdt10, vdt16;
END;
$$
DELIMITER ;
CALL p1\G

vts10: 2018-12-07 16:19:32
vts16: 2018-12-07 16:19:32.900000
vdt10: 2018-12-07 16:19:32.0
vdt16: 2018-12-07 16:19:32.9

Notice:

Columns vdt10 and vdt16 returned correct results.

Columns vts10 and vts16 returned wrong results.

  • vts10 does not have fractional digits. The expected result is '2018-12-07 16:19:32.0', like it vdt10.
  • vts16 has six fractional digits. The expected result is '2018-12-07 16:19:32.9', like it vdt16.

Generated at Thu Feb 08 08:40:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.