带有UNIX时间戳字段的MySQL查询

时间:2011-08-17 21:43:35

标签: mysql

我需要MySQL编写一个查询,它会检索unix时间戳字段(“added_on”)超过6个月的所有行。

帮助?

提前致谢!

5 个答案:

答案 0 :(得分:6)

SELECT *
FROM yourtable
WHERE added_on <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 6 MONTH))

答案 1 :(得分:2)

SELECT * FROM mytable WHERE added_on < (NOW() - (6 * 30 * 24 * 60 * 60));

答案 2 :(得分:2)

MySQL的DATE_ADD()(又名DATE_SUB)函数提供了您的功能:

     SELECT * FROM table WHERE DATE_ADD(FROM_UNIXTIME(added_on), INTERVAL 6 MONTH) > NOW()

......并且非常易读: - )

答案 3 :(得分:2)

select * from table
where now() - interval 6 month > from_unixtime(added_on)

答案 4 :(得分:1)

SELECT * FROM foobar WHERE added_on < UNIX_TIMESTAMP() - 15778463

这不是6个月,因为它每年都有所不同,但它应该足够接近各种目的(converted to seconds by Google

您还可以将UNIX时间戳转换为“真实”时间戳,并在其上使用MySQL的日期/时间函数,这可能更准确,看起来比将15778463整数硬编码到查询更漂亮(你可以使用INTERVAL 6 months),但它也比使用普通整数慢得多。