MySQLで日付妥当性チェック

SQLレベルで日付の妥当性チェックをしたいことが、たまにはあります。
MySQLの日付関数の多くは、妥当でない日付を与えたときにZEROかNULLを返します。
例えば、リファレンスマニュアルにある例では

SELECT STR_TO_DATE('2003-15-10', '%Y-%m-%d')

これはNULLを返します