0

特定の日付を列に持つレコードを選択しているのですdatetimeが、少し雑な感じがして、何か良い方法はないかと考えています。私のクエリは次のようになります。

SELECT   * 
FROM     myTable 
WHERE    event_datetime 
BETWEEN  '2012-05-05 00:00:00' AND '2012-05-05 23:59:59'

そしてそれはうまくいきます。おそらくmySQLでこれを行うためのより良い方法があるかどうか疑問に思っています.

4

3 に答える 3

1

どの観点からより良いですか?

使用することを提案しますDATE(event_datetime) = '2012-05-05'が、それは非常に非効率的です。

したがって、ソリューションを引き続き使用し、event_datetime列がインデックスでカバーされていることを確認してください

于 2012-07-05T03:05:02.643 に答える
0

where 句の列でDATE関数を使用します。

例えば:

SELECT   * 
FROM     myTable 
WHERE    DATE(event_datetime) = '2012-05-05'
于 2012-07-05T03:04:16.627 に答える
0

もできますWHERE date(event_datetime) = '2012-05-05'が、この方法では index on を使用できないためevent_datetime、 index ofevent_datetimeを使用する場合は独自の方法を使用してください。

于 2012-07-05T03:05:59.783 に答える