sql >> データベース >  >> RDS >> Mysql

MySqlのDATETIMEフィールドの日付部分にインデックスを作成するにはどうすればよいですか?

    私の記憶が正しければ、関数を介して列を渡すため、テーブル全体のスキャンが実行されます。 MySQLは、クエリオプティマイザが関数の結果を実際に知ることができないため、インデックスをバイパスして、すべての列に対して関数を素直に実行します。

    私がすることは次のようなものです:

    SELECT * FROM transactionlist 
    WHERE TranDateTime BETWEEN '2008-08-17' AND '2008-08-17 23:59:59.999999';
    

    これで、2008年8月17日に起こったすべてのことがわかります。



    1. SQLServer2008のデータベースからのデータを使用して単一のテーブルをバックアップします

    2. SQLで数値を丸める方法

    3. さまざまなアイテムをバケットにグループ化するSQLクエリ

    4. SQLでソートする方法