Sorun mysql seçmektir

4 Cevap php

hi my friends now i have table call files its have time has this stamp 1260606325 now i tring to get the files which added in the last 7 day

SELECT * FROM `files` WHERE time > SUBDATE(NOW(),604800)

dönüş sıfır

ben nasıl yapabilirim ki

4 Cevap

. Varsayılan olarak gün olarak 2 parametre alır - SUBDATE gelmez bakın. Ayrıca bu durumda bir datetime türü üretir, sadece bir unix zaman damgası gibi görünüyveya.

mysql> SELECT  SUBDATE(NOW(),604800);
+-----------------------+
| SUBDATE(NOW(),604800) |
+-----------------------+
| 0354-01-27 12:31:30   |
+-----------------------+

Sen istersin

SELECT * FROM `files` WHERE from_unixtime(time) > SUBDATE(NOW(),interval 604800 second);

veya

SELECT * FROM `files` WHERE from_unixtime(time) > SUBDATE(NOW(),7)

veya

SELECT * FROM `files` WHERE  time > (UNIX_TIMESTAMP() - 604800);

Eğer time()-(7*86400) aracılığıyla PHP zaman saymak ve bu değeri kullanabilirsiniz?

Sen SUBDATE ikinci parametre birimini belirtmek gerekir:

SELECT * FROM `files` WHERE time > SUBDATE(NOW(), INTERVAL 7 DAY);

Eğer bir birim belirtirseniz yoksa, gün bu kadar 604.800 7 olmalıdır varsayılan.

Bu deneyin:

SELECT * FROM files WHERE time > SUBDATE(CURDATE(), 7)

veya

SELECT * FROM files WHERE time > SUBDATE(NOW(), 7)

ne veri türüne bağlı olarak time biridir.

You can find infveyamation about all the date functions in MySQL here.

Ikinci parametrenin varsayılan birimi SUBDATE gün:

SUBDATE (tarih, ARALIK ifade birimi), SUBDATE (ifade, gün)