Bug #15927 date = 1234 equal 0 !?
Submitted: 22 Dec 2005 8:21 Modified: 22 Jan 2006 18:48
Reporter: jo soares Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.0.24_Debian-10sarge1-log OS:Linux (Linux Debian 2.6.9 i686)
Assigned to: CPU Architecture:Any

[22 Dec 2005 8:21] jo soares
Description:
mysql> select my_date from 2005_ordini where my_date =123;
Empty set (0.01 sec)

mysql> select my_date from 2005_ordini where my_date =1234;
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
| 0000-00-00   |
+--------------+
926 rows in set (0.00 sec) 

How to repeat:
select my_date from 2005_ordini where my_date =1234;
[22 Dec 2005 12:20] Valeriy Kravchuk
Thank you for a problem report. Please, send the results of the SHOW CREATE TABLE 2005_ordini statement and some rows to insert into that table. I need them to create a repeatable test case.
[22 Dec 2005 12:37] jo soares
mysql> create table 2005ordini (id int auto_increment primary key, my_date date)
    -> ;
Query OK, 0 rows affected (0.09 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-01');
Query OK, 1 row affected (0.02 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-02');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-03');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-04');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-05');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values ('2005-11-31');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values ('2005-09-31');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values (0);
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values (0);
Query OK, 1 row affected (0.00 sec)

mysql> select * from 2005ordini;
+----+------------+
| id | my_date    |
+----+------------+
|  1 | 2005-12-01 |
|  2 | 2005-12-02 |
|  3 | 2005-12-03 |
|  4 | 2005-12-04 |
|  5 | 2005-12-05 |
|  6 | 2005-11-31 |
|  7 | 2005-09-31 |
|  8 | 0000-00-00 |
|  9 | 0000-00-00 |
+----+------------+
9 rows in set (0.00 sec)

mysql> select * from 2005ordini where my_date=123;
Empty set (0.00 sec)

mysql> select * from 2005ordini where my_date=1234;
+----+------------+
| id | my_date    |
+----+------------+
|  8 | 0000-00-00 |
|  9 | 0000-00-00 |
+----+------------+
2 rows in set (0.00 sec)
[22 Dec 2005 12:39] jo soares
2005-09-31 and 2005-11-31 doesn't exist in the Gregorian Calendar.
[22 Dec 2005 18:48] Valeriy Kravchuk
I was not able to repeat the problem you described with newer versions of MySQL:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 5.0.19

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create table 2005ordini (id int auto_increment primary key, my_date
    -> date);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into 2005ordini (my_date) values ('2005-12-01');
Query OK, 1 row affected (0.00 sec)

mysql> insert into 2005ordini (my_date) values (0);
Query OK, 1 row affected (0.00 sec)

mysql> select * from 2005ordini where my_date=123;
Empty set (0.00 sec)

mysql> select * from 2005ordini where my_date=1234;
Empty set, 1 warning (0.00 sec)

mysql> show warnings;
+---------+------+------------------------------------------------------------+
| Level   | Code | Message                                                    |
+---------+------+------------------------------------------------------------+
| Warning | 1292 | Incorrect date value: '1234' for column 'my_date' at row 1 |
+---------+------+------------------------------------------------------------+
1 row in set (0.00 sec)

So, please, try to upgrade to 4.0.26, at least, and check once more. Inform about the results.

As for your last comment, manual (http://dev.mysql.com/doc/refman/5.0/en/datetime.html) clearly describes, that before 5.0.3 only basic checks were performed. You have to check that incorrect dates in your application.
[23 Jan 2006 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".