次のステートメントを実行すると、MySQL が混乱しているように見えます。
select now(), if(false, date(now()), time(now()));
| 2013-07-24 10:06:21 | 2010-06-21 00:00:00 |
の 2 番目の引数をリテラル文字列に置き換えるif
と、ステートメントは正しく動作します。
select now(), if(false, 'Banana', time(now()));
| 2013-07-24 10:06:21 | 10:06:21 |
これはバグですか、それとも本当に奇妙な癖ですか?