Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql] zapytanie do bazy danych
AndyPSV
post
Post #1





Grupa: Zarejestrowani
Postów: 393
Pomógł: 5
Dołączył: 6.02.2003
Skąd: The.Luciferian.Doctrine.p
df

Ostrzeżenie: (30%)
XX---


Witam,
chcialbym wybrac rekordy z bazy danych, ktore zostaly wprowadzone w 3 ostatnich dniach. Format pola `date`: dzien-miesiac-rok godziny:minuty.
Przedstawiam kod i prosze o jego poprawe/wytlumaczenie czemu to co napisalem nie dziala (chodzi o linijke po AND - zaznaczam, ze bez niej wszystko dziala prawidlowo).
  1. SELECT *                          
  2. FROM `<span
  3. style='color:red'>'.PREFIX.'news`
  4. WHERE `accepted` = 1 AND (`date` BETWEEN SUBDATE(DATE_FORMAT(NOW(), "%d-%m-%Y %h:%i"), INTERVAL 3 DAY) AND DATE_FORMAT(NOW(), "%d-%m-%Y %h:%i"))
  5. ORDER BY `id` DESC LIMIT 0, '.NEWS_ON_PAGE.'


Pozdrawiam !

Edit. Sor za bledy, poprawione.

Ten post edytował AndyPSV 2.02.2006, 21:43:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Cytat
Nie wiem co starasz sie udowodnić...

Staram udowodnic Ci to ze po to sa pola do operacji czasowych jak i funkcje przeznaczone.

Cytat
Owszem w takim wypadku jest to mniej wygodne, ale w 99% przypadkach nadal zostane przy swoim rozwiązaniu

Co jest mniej wydajne? Przeciez nic nie napisales, podalem przyklad i myslalem ze podasz mi jakies przyklady - brak argumentow.

Cytat
Przez ten czas który sie zajmuje tworzeniem skryptów jeszcze się na to nie natknąlem.

Heheheh dobre - dla Ciebie lata przestepne i obliczanie tego to 1%? Przeciez to jest powazny problem, no nic przeciez to tylko 1%.

Cytat
A o moją wiedzę na temat funkcji dotyczących daty i czasu w mysqlu sie nie bój.

Wcale sie nie boje. Zapytalem - niestety nie uzyskalem przykladu ktory by to uwzglednil.

Odpowiedz na pytanie jest prosta. Wykorzustujac int jako przechowywanie sekund jest niepoprawne, na tej podstawie nie mozesz operacji robic na datach przynajmniej takiej jaka ja podalem. W takim przypadku musisz np warunkami i podselectem wyliczac lata przestepne i dodawac odpowiednia liczbe do wartosci int.

Dla daty typu timestamp jest to zaledwie wpisanie
  1. + INTERVAL 1 ...
miesiac, dzien, rok, itd
To jest mechanizm wewnetrzny bardzo dobrze dopracowany przez autorow baz danych, nie trzeba zadnych wymyslnych rzeczy jak w Twoim przypadku wprowadzac.

Zwrocilem Ci uwage, ze to nie jest dobry sposob, moge Ci jeszcze wiele przykladow podac, no ale jesli sie uperasz dalej to mozemy dyskusje dalej toczyc, moze osoby przegladajace forum cos wyniosa z tego.

Chciales zaawansowanych rzeczy w MySQL (ostatni post na ktory razem sie wypowadalismy) to teraz slucham (chociaz to jest najprosztrze rzecz bazodanowa zwiazana z data).
Go to the top of the page
+Quote Post

Posty w temacie
- AndyPSV   [mysql] zapytanie do bazy danych   2.02.2006, 21:32:49
- - mike_mech   1. Zły bbCode. Do zapytań używamy [ sql ] a nie [...   2.02.2006, 21:38:41
- - SongoQ   Powinno byc [SQL] pobierz, plaintext ....... NOW...   2.02.2006, 23:35:31
- - AndyPSV   Nie dziala - wyskakuje, ze jest 0 newsow. NOW(), j...   3.02.2006, 17:38:57
- - SongoQ   Bo pewnie masz inny typ. Pokaz strukture.   3.02.2006, 18:31:12
- - AndyPSV   Pole `date` mam typu varchar(255). Co w ta...   3.02.2006, 19:13:35
- - Kinool   uzyc pola ktore jest stwozone do przechowywania cz...   3.02.2006, 19:15:25
- - AndyPSV   Wracajac do problemu - mam pole typu varchar(255) ...   3.02.2006, 19:55:02
- - dr_bonzo   Przeciez mozesz zmienic format wyswietlania daty i...   3.02.2006, 20:06:45
- - spenalzo   A ja sugeruje przechowywać date jako liczbe - zapi...   3.02.2006, 20:10:02
- - SongoQ   CytatA ja sugeruje przechowywać date jako liczbe -...   3.02.2006, 21:02:30
- - spenalzo   Czasami nad wydajność stawiam wygode korzystania z...   3.02.2006, 21:27:36
- - SongoQ   CytatCzasami nad wydajność stawiam wygode korzysta...   3.02.2006, 21:41:52
- - spenalzo   CytatTa, oczywiscie i nie przejmujesz sie ze zapyt...   3.02.2006, 21:46:40
- - AndyPSV   OK, juz zrozumialem - wstawie date tak jak trzeba,...   3.02.2006, 21:50:34
- - SongoQ   OK, jesli to taka wygoda dla Ciebie to napisz mi t...   3.02.2006, 21:52:59
- - spenalzo   Nie wiem co starasz sie udowodnić... Owszem w tak...   3.02.2006, 22:14:52
- - SongoQ   CytatNie wiem co starasz sie udowodnić... Staram u...   3.02.2006, 22:31:17
- - spenalzo   W 99% przypadkach z jakimi mialem do czynenia wyst...   3.02.2006, 22:41:14
- - SongoQ   CytatNie mówie oczywiście, że NIE MA zastosować gd...   3.02.2006, 22:52:04


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: 13.10.2025 - 16:42