2015-04-04 79 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); 
相关问题