2012-03-07 62 views
0

我有以下查詢:MySQL查詢得到與時間戳等於分鐘的現場數據爲當前日期

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小時,而不是僅僅從當前日期作爲12AM的獲取數據。我假設日期()轉換正在減慢很多。有沒有更好的方法來做第一個查詢來加速它?

回答

1

簡單的方法可以是

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

或相似。

+0

非常感謝! – MBU 2012-03-08 00:03:56

1

我沒有安裝MySql來測試選項,但嘗試time_stamp> = curDate()或修改curDate()以格式化爲time_stamp。

+0

謝謝!這也起作用。 – MBU 2012-03-08 00:09:05

相關問題