获取随机记录,其中unix时间戳日期为昨天

时间:2014-01-02 18:40:04

标签: mysql sql

我有一个包含USERID和TIMESTAMP列的表。 TIMESTAMP列是UNIX时间戳值。

我希望从前一天TIMESTAMP所在的表中获取随机记录。我希望记录只是昨天而不是之前和之后。

我怎么能用MySQL做到这一点?

我尝试了以下操作,看起来不像预期的那样工作。我在做什么傻事?

select * from mytable 
where time < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 day))
and time > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 2 day))

PS:我没有在上面的SQL

中包含随机性条件

1 个答案:

答案 0 :(得分:2)

您可以使用DATE_SUB来代替DATEDIFF,而只考虑日期部分并忽略时间部分:

SELECT *
FROM   mytable 
WHERE  DATEDIFF(NOW(), FROM_UNIXTIME(time)) = 1

从这里开始,生成单个随机记录很容易:

SELECT   *
FROM     mytable 
WHERE    DATEDIFF(NOW(), FROM_UNIXTIME(time)) = 1
ORDER BY RAND()
LIMIT    1