现在我有表调用文件 它有时间有这个邮票1260606325 现在我想获取过去7天内添加的文件
SELECT * FROM `files` WHERE time > SUBDATE(NOW(),604800)
返回零
我该怎么做
答案 0 :(得分:4)
查看SUBDATE的作用 - 默认情况下,它的参数为天数。在这种情况下,它还会生成日期时间类型,您似乎只有一个unix时间戳。
mysql> SELECT SUBDATE(NOW(),604800);
+-----------------------+
| SUBDATE(NOW(),604800) |
+-----------------------+
| 0354-01-27 12:31:30 |
+-----------------------+
你想要
SELECT * FROM `files` WHERE from_unixtime(time) > SUBDATE(NOW(),interval 604800 second);
或
SELECT * FROM `files` WHERE from_unixtime(time) > SUBDATE(NOW(),7)
或
SELECT * FROM `files` WHERE time > (UNIX_TIMESTAMP() - 604800);
答案 1 :(得分:1)
您可以通过time()-(7*86400)
计算PHP的时间并使用该值吗?
答案 2 :(得分:1)
您应该在SUBDATE的第二个参数中指定单位:
SELECT * FROM `files` WHERE time > SUBDATE(NOW(), INTERVAL 7 DAY);
如果您未指定单位,则默认为天数,因此604800应为7。
答案 3 :(得分:0)
试试这个:
SELECT * FROM files WHERE time > SUBDATE(CURDATE(), 7)
或
SELECT * FROM files WHERE time > SUBDATE(NOW(), 7)
取决于time
的数据类型。
您可以在MySQL here中找到有关所有日期函数的信息。
SUBDATE
的第二个参数的默认单位是天:
SUBDATE(日期,INTERVAL expr单位),SUBDATE(expr,天)