Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Operacje na datach w bazie
Forum PHP.pl > Forum > Bazy danych > MySQL
miedzna
Szukałem na forum i nie mogłem trafić na rozwiązanie akurat mojego problemu. Otóż w bazie trzymam datę w polu DATETIME w formacie 2008-07-01 09:06:34 i chcę pobrać tylko te pozycje, których data jest nie większa niż 30 dni od daty dzisiejszej. Czyli dziś mamy 30 lipiec, to chcę pobrać pozycje, które były utworzone maksymalnie 30 dni temu.

Próbowałem, ale wychodzi mi zapytanie w zapytaniu, co chyba jest złym rozwiązaniem i w ogóle nie działa smile.gif
mike
Skorzystaj z DATEDIFF(), funkcja jest bardzo prosta a przykłady w manualu.
miedzna
Cytat(mike @ 30.07.2008, 12:00:52 ) *
Skorzystaj z DATEDIFF(), funkcja jest bardzo prosta a przykłady w manualu.


Kombinuję i ciągle coś jest źle.

SELECT * FROM tabela WHERE DATEDIFF(NOW(), (UNIX_TIMESTAMP(DATE(NOW())) - 30DNI?));

Jakoś tak?
nospor
na samym poczatku strony, do ktorej linka dostales masz:
Cytat
Here is an example that uses date functions. The following query selects all rows with a date_col value from within the last 30 days:
mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;
Normalnie juz lepiej ci napisac nie mogli winksmiley.jpg ale to trzeba czytac co sie dostaje
miedzna
Fakt, dzięki.

Spojrzałem tylko tam, gdzie kotwica doprowadziła, muszę poszerzyć horyzonty smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.