MySQL的是正是老7天TIMESTAMP
问题描述:
首先是选择行,我知道,我的问题是非常相似的一个:MySQL的是正是老7天TIMESTAMP
MySQL select rows from exactly 7 days ago
不同的是,我的日期被存储在数据库中作为时间戳。
我知道我可以使用FROM_UNIXTIME从时间戳中获取日期,事情是,在我读的另一个答案是非常耗费资源(因为timestamp字段必须在比较之前转换为所有记录中的日期)。
DATE(FROM_UNIXTIME(时间戳))= CURRENT_DATE()
有任何优化的方式做到这一点?
答
反过来:首先计算目标日期的unix时间戳并使用它。
WHERE timestamp = UNIX_TIMESTAMP(NOW() - INTERVAL 7 DAY)
MySQL应该计算一次该值并一直使用它(需要通过测试)。如果不是,请使用变量或代码。