Bug #78832 | wrong result using BETWEEN with dates and NULL | ||
---|---|---|---|
Submitted: | 14 Oct 2015 12:20 | Modified: | 26 Nov 2019 23:02 |
Reporter: | Sipke Visser | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: DML | Severity: | S3 (Non-critical) |
Version: | 5.5.44-0+deb7u1-log (Debian) | OS: | Debian (3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u2 x86_64 GNU/Linux) |
Assigned to: | CPU Architecture: | Any | |
Tags: | between, date, null |
[14 Oct 2015 12:20]
Sipke Visser
[14 Oct 2015 12:33]
MySQL Verification Team
Only 5.5 version affected (5.6 and 5.7 not affected). Thanks you for the bug report. C:\dbs>c:\dbs\5.5\bin\mysql -uroot --port=3550 --prompt="mysql 5.5 > " Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.47 Source distribution PULL: 2015-OCT-09 Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.5 > use test Database changed mysql 5.5 > CREATE TABLE `bugtest` ( -> `pk` mediumint(6) unsigned zerofill NOT NULL, -> `d1` date NOT NULL, -> `d2` date DEFAULT NULL, -> PRIMARY KEY (`pk`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 -> ; Query OK, 0 rows affected (0.06 sec) mysql 5.5 > insert into bugtest values(1,'1999-01-01',NULL); Query OK, 1 row affected (0.00 sec) mysql 5.5 > select d1 between d2-interval 100 day and d2 x, -> d1 > d2 y, -> d1 >= d2-interval 100 day and d1 <= d2 z -> from bugtest -> ; +------+------+------+ | x | y | z | +------+------+------+ | 0 | NULL | NULL | +------+------+------+ 1 row in set (0.00 sec) mysql 5.5 > exit Bye C:\dbs>c:\dbs\5.6\bin\mysql -uroot --port=3560 -p --prompt="mysql 5.6 > " Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.6.28 Source distribution PULL: 2015-OCT-09 Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.6 > use test Database changed mysql 5.6 > CREATE TABLE `bugtest` ( -> `pk` mediumint(6) unsigned zerofill NOT NULL, -> `d1` date NOT NULL, -> `d2` date DEFAULT NULL, -> PRIMARY KEY (`pk`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 -> ; Query OK, 0 rows affected (0.01 sec) mysql 5.6 > mysql 5.6 > insert into bugtest values(1,'1999-01-01',NULL); Query OK, 1 row affected (0.00 sec) mysql 5.6 > mysql 5.6 > select d1 between d2-interval 100 day and d2 x, -> d1 > d2 y, -> d1 >= d2-interval 100 day and d1 <= d2 z -> from bugtest -> ; +------+------+------+ | x | y | z | +------+------+------+ | NULL | NULL | NULL | +------+------+------+ 1 row in set (0.00 sec) mysql 5.6 > exit Bye C:\dbs>c:\dbs\5.7\bin\mysql -uroot -p --port=3570 --prompt="mysql 5.7 > " Enter password: ****** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.10 Source distribution PULL: 2015-OCT-09 Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql 5.7 > use test Database changed mysql 5.7 > CREATE TABLE `bugtest` ( -> `pk` mediumint(6) unsigned zerofill NOT NULL, -> `d1` date NOT NULL, -> `d2` date DEFAULT NULL, -> PRIMARY KEY (`pk`) -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 -> ; Query OK, 0 rows affected (0.04 sec) mysql 5.7 > mysql 5.7 > insert into bugtest values(1,'1999-01-01',NULL); Query OK, 1 row affected (0.00 sec) mysql 5.7 > mysql 5.7 > select d1 between d2-interval 100 day and d2 x, -> d1 > d2 y, -> d1 >= d2-interval 100 day and d1 <= d2 z -> from bugtest -> ; +------+------+------+ | x | y | z | +------+------+------+ | NULL | NULL | NULL | +------+------+------+ 1 row in set (0.00 sec)
[26 Nov 2019 23:02]
Roy Lyseng
Posted by developer: Fixed in 5.6