我总是在努力解决这个问题,过去制作一个unix时间戳,我需要找到超过30天的mysql中的所有记录,但似乎没有想到如何做到这一点而不写很多代码,必须有一个简短的方法来做到这一点?
任何帮助将不胜感激
由于
答案 0 :(得分:4)
使用DATE_SUB
select * from mytable where time <
UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 day))
答案 1 :(得分:2)
使用PHP / MySQL:
$thirtydaysago = time() - (60 * 60 * 24 * 30);
$query = "SELECT * FROM records WHERE time < '$thirtydaysago'";
答案 2 :(得分:0)
为什么不使用PHP mktime函数,传递你想要的日期,然后离开:
答案 3 :(得分:0)
我会使用mysql DATEDIFF
函数
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_datediff
以NOW()
作为参数之一。返回日期之间的天数。
答案 4 :(得分:0)
如果您有数据字段,那么您可以使用类似mysql DATE_SUB的内容来解析:
SELECT * FROM mytable WHERE created_at < DATE_SUB(CURDATE(),INTERVAL 30 DAY);