2015-04-04 78 views
0

TL; DR:我有一個帶有時間戳列的列。我想過濾一個特定的日期。我應該添加日期coulmn嗎?我應該添加一個額外的日期列嗎?

id(AI/PK) some fields timestamp *date?* 

所以只有一個時間戳科拉姆查詢會是這樣的

SELECT ? 
FROM [TABLE] 
WHERE YEAR(timestamp) = '2015' AND MONTH(timestamp) = '04' AND DAY(timestamp) = '1' 

VS查詢用一個額外的日期列

SELECT ? FROM [TABLE] WHERE date = date('04-01-2015')? 

我目前在規劃和設計我的項目階段。但它將是一個非常巨大的生產桌。所以有一個日期列的缺點顯然是表的增加的大小。我想沒有日期欄的意思會降低表現。沒有?

嗯,我不知道這是否容易。

回答

1

我不這麼認爲。你可以這樣做:

SELECT ? 
FROM [TABLE] 
WHERE date(timestamp) = '2015-04-01' 

或者,如果你想查詢使用索引:

SELECT ? 
FROM [TABLE] 
WHERE timestamp >= '2015-04-01' AND 
     timestamp < date_add('2015-04-01', interval 1 day); 
相關問題