2015-06-04 129 views
0

知道,下面的SQL語句將選擇的數據範圍,其中之一是其他人中最有效的一個,而不要使用timestampdatetime將改變性能MySQL的日期範圍選擇

假設我們有表 testtimestamp列,datatime 我想提取五月的所有記錄,2015年:

WHERE DATE_FORMAT(timestamp,'%Y-%m') = '2015-05' 
WHERE timestamp BETWEEN '2015-01-01' AND '2015-01-31' 
WHERE timestamp >= '2015-01-01' AND timestamp <= '2015-01-31' 
WHERE YEAR(timestamp) = 2015 AND MONTH(timestamp) = 5 

我應該避免,而這是最好的做法

+0

爲什麼不把它們插入MySQL Workbench並查看每個性能?聽起來就像你在問別人爲你做那樣。 – ragerory

+0

首先,我不知道MySQL工作臺是否存在,我只是想知道它們是否都以相同的方式工作 如果您不知道它們的工作原理是否相同,或者如果他們不請讓其他人回答 –

+1

@ragerory這個問題不僅包括執行它們以查看哪個執行得更快......還有更多因素 –

回答

1

這幾乎是一個主觀問題,因爲它實際上取決於你在表和列上的索引。

如果你有你的列索引,那麼你可以使用這兩個

WHERE timestamp BETWEEN '2015-01-01' AND '2015-01-31' 
WHERE timestamp > '2015-01-01' AND timestamp < '2015-01-31' 

這兩個都可以利用索引,並執行更快

哪個這兩個會執行得更快,我不認爲有什麼區別。我的首選是使用BETWEEN,因爲在閱讀查詢時對我更有意義。挑一個並堅持下去。一致性是關鍵