MYSQL(バージョン5.6.37)で次の2つのクエリを実行したときと全く同じテーブルを使用すると、私には意味をなさない非常に異なる結果になります...MySQLで20,000を使用するのがなぜ異なるのですか
SELECT COUNT(*) FROM salesTransactions WHERE date<'2000-01-01'
(予想通り)159件の結果が得られます。しかし、私は、私は完全に異なる結果を得る同じレポートを実行しますが、20,000年を増やすとき:私は結果6
を取得
SELECT COUNT(*) FROM salesTransactions WHERE date<'20000-01-01'
をどのようにということは可能ですか?日付を30,000に変更すると、予想される結果が得られます。私は周りに遊んで、20100年には8つの結果があり、それは別の数字です。
表は以下のとおりです。
ID:整数 日:日付 名:VARCHAR(32)
どのようにこれをすることができますか?
この動作を再現できるサンプル・データを使用してSQLのフィドルを作成した方がいいでしょう。私の推測では、あなたの日付フィールドは日付ではなく、varcharなので、mysqlは日付比較とは対照的にテキスト比較を使用しているということです。データがなければ、私の行動は再現できませんでした。 – Shadow
日付フィールドです。 –
DATE型は、日付部分を持ち時間部分を持たない値に使用されます。 MySQLはDATE値を取得して 'YYYY-MM-DD'形式で表示します。サポートされている範囲は '1000-01-01'〜 '9999-12-31'です。 DATETIME型は、日付と時刻の両方の部分を含む値に使用されます。 MySQLはDATETIMEの値を取得し、 'YYYY-MM-DD HH:MM:SS'形式で表示します。サポートされる範囲は '1000-01-01 00:00:00'〜 '9999-12-31 23:59:59'です。 TIMESTAMPデータ型は、日付と時刻の両方の部分を含む値に使用されます。 TIMESTAMPの範囲は '1970-01-01 00:00:01' UTCから '2038-01-19 03:14:07' UTCです。 –