Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie dni do okreslonej daty
macdavido
post 19.06.2006, 11:42:38
Post #1





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

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


Witajcie ponownie
probuje zrobic jakies porownanie na dacie ale nie bardzo moge doszukac sie jak mozna, wiec moze musze trzasnac jakas funkcje przeliczajaca.

Mam date startowa oraz koncowa w bazie i ilosc dni jako zmienna w skrypcie php. W bazie MySQL tabela zawiera kolumne data1 (startowa) data2 (koncowa) wszystkie sa typu DATE.

Teraz w php mam cos takiego w zmiennych:

  1. <?php
  2. $startdate = "2006.06.17";
  3. $iloscdni = 14;
  4. ?>

chodzi o zapytanie, ktore wyswietli wszystkie pozycje spelniajace warunek ze mieszczacy sie w tym przedziale. Nie wychodzi mi sprawdzanie pola daty na zasadzie:

  1. SELECT * FROM tabela WHERE data1>='$startdate' AND data2<='$startdate+$iloscdni'

Powyzsze ogolnie jest wlasnie opisem problemu i o co mi w warunku chodzi, jednak niestety tak latwo sie nie da. Czy jest to jakos w prosty sposob do uzyskania?


--------------------
MacOS X 10.5 Leopard @ MacPro G5 Xeon 2xQuadCore 3GHz... "tutaj nie brak odpowiedzi"
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post 19.06.2006, 11:46:03
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




DATE_ADD
http://dev.mysql.com/doc/refman/5.0/en/dat...-functions.html
Ino data ma byc w formacie rrrr-mm-dd a nie rrrr.mm.dd

No i w php mozna takie numerki robic przy uzyciu chociazby strtotime()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
macdavido
post 19.06.2006, 12:07:29
Post #3





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

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


Powiem tak
to forum jest normalnie bezcenne
Dzieki wielkie za podpowiedz biggrin.gif

Do tego te kropki zamiast myslnika :-)
sprobuje to zaimplementowac snitch.gif


--------------------
MacOS X 10.5 Leopard @ MacPro G5 Xeon 2xQuadCore 3GHz... "tutaj nie brak odpowiedzi"
Go to the top of the page
+Quote Post
bendi
post 19.06.2006, 13:56:18
Post #4





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Cytat(nospor @ 19.06.2006, 12:46 ) *
Ino data ma byc w formacie rrrr-mm-dd a nie rrrr.mm.dd

Nie całkiem - otóż MySQL dopuszcza pewne odstępstwa od sztywnych reguł daty w formacie iso-8601 i tak można pominąć zera w przypadku dnia i miesiąca oraz dodać inne separatory byle cały czas były takie same:
  1. INSERT INTO tabela (DATA) VALUES('2005.1.24');
  2. INSERT INTO tabela (DATA) VALUES('2005.01.24');
  3. INSERT INTO tabela (DATA) VALUES('2005/1/24');

Sa poprawnymi stwierdzeniami i odpowiadają:
  1. INSERT INTO tabela (DATA) VALUES('2005-01-24');


Ten post edytował bendi 19.06.2006, 13:57:13


--------------------
Go to the top of the page
+Quote Post
nospor
post 19.06.2006, 15:52:19
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@bendi masz jak (prawie) zwykle rację smile.gif
Jesli by chodzilo tylko o mysql to faktycznie mozna uzywac roznych separatorów. Ja mialem jednak rowniez na mysli zapodanie tej daty do strtotime(). Tam podanie rrrr.mm.dd da nam zle wyliczenie. Ale moja wina w zlym miejsu podalem to zastrzezenie odnosnie separatora.
Oczywiscie Twoja uwaga jest jak najbardziej sluszna, aczkolwiek osobiscie wole trzymac sie standardu by sie kiedys tam nie pomylic.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 24.07.2025 - 20:04