>>>> 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/[email protected]