Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> odejmowanie dni od daty
Citral
post 13.04.2004, 14:34:08
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 0
Dołączył: 3.02.2004

Ostrzeżenie: (0%)
-----


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ę...
Go to the top of the page
+Quote Post
Prezes
post 13.04.2004, 17:54:57
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 8.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
Windsurfing -> way of my life !!!
Go to the top of the page
+Quote Post
Majdan
post 13.04.2004, 18:11:07
Post #3





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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.


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 13.04.2004, 18:22:30
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


[php:1:0c05bafca8]<?php
time() - 604800
?>[/php:1:0c05bafca8]
to bedzie czas: teraz - 7 dni
604800 sekund = 7 * 24 * 60 * 60 sekund
Go to the top of the page
+Quote Post
Majdan
post 13.04.2004, 18:43:06
Post #5





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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


--------------------
Go to the top of the page
+Quote Post
FiDO
post 13.04.2004, 18:56:16
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

Ostrzeżenie: (0%)
-----


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]


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
8_pasazer_NOSTRO...
post 4.01.2010, 14:17:25
Post #7





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 18.11.2009
Skąd: Legnica

Ostrzeżenie: (20%)
X----


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 = ?

Go to the top of the page
+Quote Post
skowron-line
post 4.01.2010, 14:20:44
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


@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.

Ten post edytował skowron-line 4.01.2010, 14:21:22


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
darko
post 4.01.2010, 14:25:31
Post #9





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


2010-03-14 - 14 dni = select date_sub('2010-03-14',interval 14 day)


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 3.05.2025 - 04:24