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 of event_datetime,请使用你原来的方式。

于 2012-07-05T03:05:59.783 回答