Bug #28336 | Date comparison changed, not mentioned in manual | ||
---|---|---|---|
Submitted: | 9 May 2007 16:35 | Modified: | 19 Dec 2007 13:13 |
Reporter: | Tonci Grgin | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Data Types | Severity: | S2 (Serious) |
Version: | 5.0.38 up | OS: | Any |
Assigned to: | Evgeny Potemkin | CPU Architecture: | Any |
Tags: | regression |
[9 May 2007 16:35]
Tonci Grgin
[16 May 2007 18:01]
x bill
I am seeing the same behavior on Mandriva Linux Cooker. MySQL version PRE-5.0.41 would discard/ignore the extra characters on the DATE datatype. 5.0.41 and later seem to use them. Here is another test case: create table payment ( caldate date ); insert into payment( caldate ) values ('2007-05-16 13:11:11'); MySQL PRE- 5.0.41 : mysql> select * from payment where -> payment.caldate >= '2007-05-16 00:00:00' AND -> payment.caldate <= '2007-05-16 00:00:00'; +------------+ | caldate | +------------+ | 2007-05-16 | +------------+ 1 row in set (0.00 sec) MySQL 5.0.41 and later: mysql> select * from payment where -> payment.caldate >= '2007-05-16 00:00:00' AND -> payment.caldate <= '2007-05-16 00:00:00'; Empty set (0.00 sec) This change breaks a lot of things in our application.
[18 May 2007 18:46]
Mike Benoit
This also breaks a lot of things in our application too. Please fix it ASAP!
[5 Jun 2007 13:59]
Evgeny Potemkin
mysql> create table asd ( x date ); Query OK, 0 rows affected (0.01 sec) mysql> insert into asd values ('2007-02-12'); Query OK, 1 row affected (0.00 sec) mysql> insert into asd values ('20070213'); Query OK, 1 row affected (0.00 sec) mysql> select * from asd where x = '20070212'; +------------+ | x | +------------+ | 2007-02-12 | +------------+ 1 row in set (0.00 sec) mysql> select * from asd where x = '20070212000000'; +------------+ | x | +------------+ | 2007-02-12 | +------------+ 1 row in set (0.00 sec) mysql> select version(); +--------------+ | version() | +--------------+ | 5.0.44-debug | +--------------+ 1 row in set (0.00 sec)
[5 Jun 2007 14:01]
Evgeny Potemkin
The very same server: mysql> create table payment ( caldate date ); Query OK, 0 rows affected (0.00 sec) mysql> insert into payment( caldate ) values ('2007-05-16 13:11:11'); Query OK, 1 row affected, 1 warning (0.00 sec) mysql> select * from payment where -> payment.caldate >= '2007-05-16 00:00:00' AND -> payment.caldate <= '2007-05-16 00:00:00'; +------------+ | caldate | +------------+ | 2007-05-16 | +------------+ 1 row in set (0.00 sec)
[8 Jun 2007 20:23]
Jakub Wasielewski
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 194459 Server version: 5.0.40 Gentoo Linux mysql-5.0.40 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create table asd ( x date ); Query OK, 0 rows affected (0.02 sec) mysql> insert into asd values ('2007-02-12'); Query OK, 1 row affected (0.00 sec) mysql> insert into asd values ('20070213'); Query OK, 1 row affected (0.00 sec) mysql> select * from asd where x = '20070212'; +------------+ | x | +------------+ | 2007-02-12 | +------------+ 1 row in set (0.00 sec) mysql> select * from asd where x = '20070212000000'; Empty set (0.00 sec) mysql> select version(); +-----------+ | version() | +-----------+ | 5.0.40 | +-----------+ 1 row in set (0.00 sec) So, in which version it was fixed?
[19 Dec 2007 13:13]
Tonci Grgin
Not repeatable with 5.0.54BK on XP Pro SP2 localhost: -- Server version: 5.0.54-max-nt-log Source distribution -- mysql> drop table if exists asd; Query OK, 0 rows affected (0.01 sec) mysql> create table asd ( x date ); Query OK, 0 rows affected (0.05 sec) mysql> insert into asd values ('2007-02-12'); Query OK, 1 row affected (0.00 sec) mysql> insert into asd values ('20070213'); Query OK, 1 row affected (0.00 sec) mysql> select * from asd where x = '20070212'; +------------+ | x | +------------+ | 2007-02-12 | +------------+ 1 row in set (0.00 sec) mysql> select * from asd where x = '20070212000000'; +------------+ | x | +------------+ | 2007-02-12 | +------------+ 1 row in set (0.02 sec)