現在我有表調用文件 它有時間有這張郵票1260606325 現在我特林得到這在過去的7天加入文件問題是在MySQL選擇
SELECT * FROM `files` WHERE time > SUBDATE(NOW(),604800)
其返回零
我該怎麼做
現在我有表調用文件 它有時間有這張郵票1260606325 現在我特林得到這在過去的7天加入文件問題是在MySQL選擇
SELECT * FROM `files` WHERE time > SUBDATE(NOW(),604800)
其返回零
我該怎麼做
看看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);
感謝它的工作greate ++ – 2009-12-16 11:43:53
+1更仔細地閱讀這個問題比我注意到'時間'的數據類型'TIMESTAMP' – 2009-12-16 11:49:14
你可以通過time()-(7*86400)
來計算PHP的時間並使用該值?
試試這個:這取決於數據類型time
是
SELECT * FROM files WHERE time > SUBDATE(CURDATE(), 7)
或
SELECT * FROM files WHERE time > SUBDATE(NOW(), 7)
。
您可以在MySQL here中找到有關所有日期函數的信息。
的SUBDATE
第二個參數的默認單位爲天:
SUBDATE(日期,間隔EXPR單元),SUBDATE(表達式,天)
你應該在指定單位SUBDATE的第二個參數:
SELECT * FROM `files` WHERE time > SUBDATE(NOW(), INTERVAL 7 DAY);
如果不指定單位,天是默認設置,以便604800應該是7
它也得到零 – 2009-12-16 11:39:49
使用在你要跟句子一些標點符號。 – Pawka 2009-12-16 11:33:47