1

首先,我知道我的问题与那个问题非常相似:

MySQL 从 7 天前选择行

不同之处在于我的日期作为时间戳存储在数据库中。

我知道我可以使用 FROM_UNIXTIME 从时间戳中获取日期,事实是,在我读到的另一个答案中,这非常消耗资源(因为在比较之前必须将时间戳字段转换为所有记录中的日期)。

DATE(from_unixtime(timestamp)) = CURRENT_DATE()

有没有优化的方法来做到这一点?

4

1 回答 1

5

扭转它:首先计算目标日期的unix时间戳并使用它。

WHERE timestamp = UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)

MySQL 应该计算一次该值并一直使用它(尽管需要测试)。如果没有,请使用变量或代码。

于 2013-02-27T10:59:21.033 回答