0

年が文字列の最初の部分である場合にのみ機能する where 句で日付比較を行っています。crDate フィールドは DATETIME であるため、次の両方が機能するべきではありませんか?

and     crDate between '2009/01/01' and '2009/01/21'

and     crDate between '01/01/2009' and '01/21/2009'

これらのステートメントは両方とも同じようですが、最初のステートメントは期待される結果を返し、2番目のステートメントは0レコードを返します。

これらの機能を異なるものにする、オフまたはオンにすることができる mySQL の設定はありますか?

4

1 に答える 1

1

MySQL は、考えられるすべての日付形式を解析できるほどスマートではありません。1 月 10 日ですか、それとも10/01/201210 月 1 日ですか? 文字列から適切な変換を実行するか、デフォルトの形式 (通常は次の形式) に依存する必要がありますYYY-MM-DD

mysql> SELECT @@date_format;
+---------------+
| @@date_format |
+---------------+
| %Y-%m-%d      |
+---------------+
于 2012-11-28T16:58:23.623 に答える