Bug #19541 | Incorrect result set with date_add | ||
---|---|---|---|
Submitted: | 4 May 2006 18:08 | Modified: | 5 May 2006 11:25 |
Reporter: | Paul Lautman | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 5.0.19 | OS: | Linux (Linux) |
Assigned to: | CPU Architecture: | Any |
[4 May 2006 18:08]
Paul Lautman
[4 May 2006 19:56]
Paul Lautman
I have done further testing and discovered that the bug only seems to manifest itself when using BETWEEN ... AND ... I tried changing the query to use <= and >= and then it works as expected. I have created http://www.sunnyacres.co.uk/bb/bbqt.php so that you can try various queries to see the problem first hand. I tried the following queries: To see the problem: SELECT * FROM balls_in_play2 WHERE (expiry_date BETWEEN date_add( Reminder_Sent, INTERVAL 7 DAY ) AND date_add( current_date, INTERVAL 7 DAY )); To see that the expiry date is not withing the BETWEEN range: SELECT *, date_add( Reminder_Sent, INTERVAL 7 DAY ), date_add( current_date, INTERVAL 7 DAY ) FROM balls_in_play2 WHERE (expiry_date BETWEEN date_add( Reminder_Sent, INTERVAL 7 DAY ) AND date_add( current_date, INTERVAL 7 DAY )); To see it work correctly using <= and =>: SELECT * FROM balls_in_play WHERE (expiry_date >= date_add( Reminder_Sent, INTERVAL 7 DAY ) AND expiry_date <= date_add( current_date, INTERVAL 7 DAY )) OR (expiry_date >= date_add( Reminder_Sent, INTERVAL 14 DAY ) AND expiry_date <= date_add( current_date, INTERVAL 14 DAY )) Hope this helps
[5 May 2006 10:11]
Hartmut Holzgraefe
duplicate of Bug #14360, fixed in 5.0.21
[5 May 2006 11:25]
Paul Lautman
Well it doesn't seem to have all the defining factors of Bug #14360, but if you reckon it's fixed with it then that's fine.