MySQL查询获取时间戳等于当前日期的最小字段数据

时间:2012-03-07 21:52:19

标签: mysql database timestamp

我有以下查询:

SELECT MIN(myColumn) as myColumn
FROM myTable
WHERE date(time_stamp) = curdate() AND id = 1;

这当前有效但当数据库中存在大量数据时非常慢。 我尝试使用它:

SELECT MIN(myColumn) as myColumn
FROM myTable
WHERE time_stamp >= (now() - interval 1 day) AND id = 1;

此查询非常快,但问题是我在过去24小时内获取的数据,而不是截至上午12点的当天。我假设date()转换正在减慢很多。有没有更好的方法来进行第一次查询以加快速度?

2 个答案:

答案 0 :(得分:1)

简单的方法可以是

SELECT MIN(myColumn) as myColumn 
FROM myTable 
WHERE time_stamp between date(now()) and date(now() + interval 1 day) AND id = 1; 

或类似。

答案 1 :(得分:1)

我没有安装MySql来测试选项,但尝试使用time_stamp> = curDate()或修改curDate(),使其格式化为time_stamp。