>>>> 2011/08/07 18:20 +0300, Marius Feraru >>>>
Would someone please shed some light on what's wrong with calls like
    IF( DATE(d) = "some-date", TIME(d), d )
on DATETIME columns?
Thank you.

I run some tests on mysql 5.0, 5.1 and 5.5: got the same wierd results
everywhere, so I guess I'm missing something, but what is it?
It looks like the engine is trying to use the result of TIME(d) as "d"
in the DATE(d) test, but I can't understand why.
<<<<<<<<
Function TIME yields a string, not any timestamp type, but "d" is of some such 
type. Unhappily, the HTML help that I downloaded is of no help in this case, 
when the result context has no type, unless it is supposed that one stops at 
the first that matches:
             Expression                        Return Value
expr2 or expr3 returns a string                string
expr2 or expr3 returns a floating-point value  floating-point
expr2 or expr3 returns an integer              integer
but it looks as if the string is coerced to "d" s type. But since if empty 
string is concatenated to the TIME-result it is as you wish, and the value of 
TIME(d) = DATE_FORMAT(d, '%T') is 1, it seems to me an optimizer error.

As for the warning, your arguments to "DATE_FORMAT" are backwards, and 
corrected that yields the outcome that you seek.


-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/mysql?unsub=arch...@jab.org

Reply via email to