所有日期都以时间戳格式提前3天获取mysql日期

时间:2012-06-27 18:53:42

标签: mysql

我将所有日期存储为数据库中的timestamps(int)。

我怎样才能获得3天前的日期?

我试过

SELECT date from user WHERE  DATE_ADD(DATE( FROM_UNIXTIME( `created` ) ), INTERVAL 3 DAY) = CURDATE()

这是最好/最有效的方法吗?

2 个答案:

答案 0 :(得分:0)

我认为数据库更喜欢只添加2次日期来定义范围,例如:

SELECT date FROM user
WHERE UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL -3 DAY)) <= `created`
AND `created` < UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL -2 DAY));

在两种情况下测试在SELECT之前放置DESCRIBE关键字,并且数据库响应它将如何执行查询

答案 1 :(得分:0)

SELECT date
FROM user
WHERE created = UNIX_TIMESTAMP(CURRENT_DATE - INTERVAL 3 DAY)

注意:where子句中的created列没有使用任何函数。此查询应该能够使用索引。