Citral
13.04.2004, 14:34:08
Mam tabelę z książkami i chciałbym wyświetlać pozycje ostatnio dodane, no i wymyśliłem sobie że zadam następujące zapytanie
[sql:1:d871e91f74]SELECT nazwa_ksiazki
FROM books
WHERE data_dodania >= data
[/sql:1:d871e91f74]
No i chciałem zrobić tak aby "data" to była aktualna data minus siedem dni, czyli tydzień, tak więc zapytanie wywalało by wszystkie książki dodane w ciągu ostatniego tygodnia (mające datę_dodania świeższą od data). Nie wiem tylko jak od aktualnej daty odjąć ileś tam dni.
edit:
-
no i oczywiście po zrealizowaniu takiego odejmowania powinna być zachowana prawidłowa data czyli jeśli od 1.1.1999 zostanie odjęte 7 dni to wynikiem powinna być data 24.12.1998... czy ktos wie jak to zrealizować? pewnie jakaś prosta funkcja do tego służy, jednak nie mogę nic znaleźć, w manualu MySQL znalazłem tylko coś takiego jak MONTH() albo DAYOFMONTH() ale chyba nie za bardzo nadaje się to do tego o czym piszę...
Prezes
13.04.2004, 17:54:57
Mozesz zrobic na zasadzie tygodnie.Pewnie nie o to Ci chodzi ale zawsze jakis pomysl,tzn:
pobierasz ktory mamy tydzien w roku i sprawdzasz z tym co masz w bazie np:
[php:1:cf375dffa3]<?php
$date = date(W); //pobiera nr tygodnia danego roku
$data = $date - 1;
$sql = mysql_query("SELECT nazwa_ksiazki FROM ksiazki WHERE data= $date AND data = $data")
?>[/php:1:cf375dffa3]
Pewnie nie jest to najlepszy sposob no ale jedyny jaki mi przyszedl do glowy.Minus tego jest taki, ze wyswietli z tego tyg i z poprzedniego czyli min z 7 dni max z 14.
Pozdrawiam
Majdan
13.04.2004, 18:11:07
Sprawd to:
[php:1:2aac0cf8c8]<?php
$data=date("d.m.Y",strtotime("-7 days",time()));
$sql = mysql_query("SELECT nazwa_ksiazki FROM ksiazki WHERE 'data' >= '" . $data . "'") ;
?>[/php:1:2aac0cf8c8]
Format daty w funkcji date() dostosuj do rodzaju zapisu formatu daty w bazie.
Kodu nie testowałem, więc może być jaki byk.
dr_bonzo
13.04.2004, 18:22:30
[php:1:0c05bafca8]<?php
time() - 604800
?>[/php:1:0c05bafca8]
to bedzie czas: teraz - 7 dni
604800 sekund = 7 * 24 * 60 * 60 sekund
Majdan
13.04.2004, 18:43:06
Cytat
[php:1:26ee6644c0]<?php
time() - 604800
?>[/php:1:26ee6644c0]
to bedzie czas: teraz - 7 dni
604800 sekund = 7 * 24 * 60 * 60 sekund
:arrow:
http://forum.php.pl/viewtopic.php?t=14404
FiDO
13.04.2004, 18:56:16
Lepiej bedzie zrzucic to zadanie na baze:
[sql:1:2b3a176b56]
SELECT nazwa_ksiazki
FROM books
WHERE data >= DATE_SUB(CURDATE(),INTERVAL 7 DAY);
[/sql:1:2b3a176b56]
8_pasazer_NOSTROMO
4.01.2010, 14:17:25
Odświeżam wątek.
Jak odjąć od daty (tylko nie dzisiejszej) ilość dni np. 14.
Mam w bazie pewne daty np.:
2010-03-14
2010-06-09
2010-02-01
2010-03-18
Chciałbym od każdej odjąć 14 dni i wiedzieć jaka to będzie data.
2010-03-14 - 14 dni = ?
2010-06-09 - 14 dni = ?
2010-02-01 - 14 dni = ?
2010-03-18 - 14 dni = ?
skowron-line
4.01.2010, 14:20:44
@8_pasazer_NOSTROMO w poście wyżej @FiDO ma w WHERE funkcję która Ci pomoże. Tylko zamiast CURRDATE dasz swoje pole w bazie.
darko
4.01.2010, 14:25:31
2010-03-14 - 14 dni = select date_sub('2010-03-14',interval 14 day)
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.