Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodanie dni do okreslonej daty
macdavido
post
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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 559
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()
Go to the top of the page
+Quote Post
bendi
post
Post #3





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

Posty w temacie


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

 



RSS Aktualny czas: 3.10.2025 - 10:12