Thanks for the replies all (and for the blog link - one to add to my feeds I think).
Yes I spotted that adding the leading zero to the month yields the correct result here, but I think I know why. If you imagine BETWEEN using a string comparison here then the results for with and without leading zero are both correct; but the documentation explicitly states that for a comparison, timestamp conversions are used and this appears not to be the case :-( Perhaps I should pose this to the internals list...? Rob On 5/29/07, Fred Ballard <[EMAIL PROTECTED]> wrote:
Everything seems to go fine for me if I change the two 2007-3-23 to 2007-03-23. Fred -----Original Message----- From: Rob Desbois [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 29, 2007 5:02 AM To: mysql@lists.mysql.com Subject: datetime type conversion problem I am having issues with type conversion not working as expected per the documentation. I am using in MySQL 5.0.27 for x86/Windows. The documentation at http://dev.mysql.com/doc/refman/5.0/en/type-conversion.html states that for comparison operators "If one of the arguments is a TIMESTAMP or DATETIMEcolumn and the other argument is a constant, the constant is converted to a timestamp before the comparison is performed." So the following SQL statement should convert the last string to a timestamp then perform date-time comparison: > SELECT '2007-05-24 00:00:00' BETWEEN > ('2007-3-23' - INTERVAL 24 HOUR) AND '2007-3-23 23:59:59'; Thus it should return 0 as 24th May is not in the given range. I get the result 1 however... If I perform an explicit conversion using CAST('2007-3-23 23:59:59' AS DATETIME) I get 0 as expected. Can anyone enlighten me - have I misunderstood something somewhere? Thanks, --rob
-- Rob Desbois Eml: [EMAIL PROTECTED] Tel: 01452 760631 Mob: 07946 705987 "There's a whale there's a whale there's a whale fish" he cried, and the whale was in full view. ...Then ooh welcome. Ahhh. Ooh mug welcome.