Bug #115740 Binary log shows different separator in Date type
Submitted: 1 Aug 9:21 Modified: 1 Aug 9:42
Reporter: Woson Wong Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Command-line Clients Severity:S4 (Feature request)
Version:8.0 OS:Any
Assigned to: CPU Architecture:Any

[1 Aug 9:21] Woson Wong
Description:
I insert a data in table:

 insert into test_date(start_time) values("2024-08-06");

But at the binary log, it shows:'2024:08:06', but what i insert is:"2024-08-06"

Binary log:
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 891
#240801 16:40:40 server id 1  end_log_pos 968 CRC32 0x3ac60249  Query   thread_id=8860  exec_time=0     error_code=0
SET TIMESTAMP=1722501640/*!*/;
BEGIN
/*!*/;
# at 968
#240801 16:40:40 server id 1  end_log_pos 1046 CRC32 0x1d74713c         Rows_query
# insert into test_date(start_time) values("2024-08-06")
# at 1046
#240801 16:40:40 server id 1  end_log_pos 1104 CRC32 0xd1f736a6         Table_map: `testdb`.`test_date` mapped to number 136
# has_generated_invisible_primary_key=0
# at 1104
#240801 16:40:40 server id 1  end_log_pos 1147 CRC32 0x1d720487         Write_rows: table id 136 flags: STMT_END_F
### INSERT INTO `testdb`.`test_date`
### SET
###   @1=7 /* INT meta=0 nullable=0 is_null=0 */
###   @2='2024:08:06' /* DATE meta=0 nullable=1 is_null=0 */
# at 1147
#240801 16:40:40 server id 1  end_log_pos 1178 CRC32 0x55fc3f57         Xid = 57632
COMMIT/*!*/;

How to repeat:
create a table:
CREATE TABLE `test_date` (
  `id` int NOT NULL AUTO_INCREMENT,
  `start_time` date DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

Insert value:
insert into test_date(start_time) values("2024-08-06");

Flush logs to write to the binary log:
flush binary logs;

Check the binary log:
 mysqlbinlog -vv --base64-output=decode-rows binlog.000007
ps.use the actual file name instead of "binlog.000007"
[1 Aug 9:42] MySQL Verification Team
Hi Mr. Wong,

Thank you for your bug report.

We reproduced your test case and indeed a DATE is presented in the TIME format.

This is not a serious bug, so we shall consider it as a feature request.

It affects version 8.0 and all higher versions.

Verified.