Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Wybrany czas z bazy w timestamp
Forum PHP.pl > Forum > Bazy danych > MySQL
przem1969
Witam. Mam takie zapytanie i jest ok.
  1.  
  2. SELECT id, `viewcount`,SUBSTRING(title,1,57) AS 'title_substring' FROM news30_story ORDER BY `news30_story`.`viewcount`DESC LIMIT 0,7 ;
  3. UPDATE news30_story SET views = views + '1' WHERE id;
  4. SELECT `viewcount` FROM news30_story ORDER BY `viewcount` DESC LIMIT 0,7 ;


Chciałbym dodać okres 60 dni .....
Czy mogę prosić o pomoc?questionmark.gif
sazian
a do czego te 60 dni chcesz dodać ?

ps.
wywal te cudzysłowy to forum pokoloruje składnie
przem1969
Nie chodzi o cudzysłowy skopiowałem dlatego. Chodzi mi o to że chciałbym wyciagnąc najczesciej klikane czy czytane jak to zwal z oststnich 60 dni . Po to.
Pyton_000
np:
  1. WHERE DATE(pole) >= DATE(NOW()) - INTERVAL 60 DAY
przem1969
Dziekuję ale nie za bardzo rozumiem ?Zamiast mojego czy dołożyć kolejne z Where ? Mogę poprosić o wyjaśnienie?
Pyton_000
Dokleić np:
  1. SELECT id, viewcount, SUBSTRING(title,1,57) AS title_substring FROM news30_story WHERE DATE(pole) >= DATE(NOW()) - INTERVAL 60 DAY ORDER BY viewcount DESC
przem1969
Co mam wpisac za pole. Kombinowałem timestamp, --> Nie trybi.
b4rt3kk
Może byś tak określił do czego chcesz dodać ten okres 60 dni? Żeby zapytanie zwróciło wyniki uwzględniając tylko ostatnie 60 dni? To może byś tak przestawił strukturę tabeli? Masz tam kolumnę przechowującą datę?
przem1969
Timestamp wczesniej pisałem ! Nie chce zmieniac zapytania tylko chce je ograniczyc do 60 dni. Co tu jest niejasnego? Zapytanie ma pozostac . Tylko chce ograniczyc je do 60 dni . Co mam jeszcze wyjasnic?
b4rt3kk
Cytat(przem1969 @ 20.08.2013, 01:10:57 ) *
Timestamp wczesniej pisałem ! Nie chce zmieniac zapytania tylko chce je ograniczyc do 60 dni. Co tu jest niejasnego? Zapytanie ma pozostac . Tylko chce ograniczyc je do 60 dni . Co mam jeszcze wyjasnic?


Przykro mi, ale na tej podstawie

  1. SELECT id, `viewcount`,SUBSTRING(title,1,57) AS 'title_substring' FROM news30_story ORDER BY `news30_story`.`viewcount`DESC LIMIT 0,7 ;
  2. UPDATE news30_story SET views = views + '1' WHERE id;
  3. SELECT `viewcount` FROM news30_story ORDER BY `viewcount` DESC LIMIT 0,7 ;


Nikt Ci nie powie co masz zrobić. Przedstaw strukturę tabeli.
przem1969
b4rt3kk
Masz kolumnę o nazwie timestamp, która jest typu int? Potrzebujesz kolumny, która będzie typu TIMESTAMP i rzeczywiście będzie przechowywać datę.
Pyton_000
Pomijam fakt wydajności takich tabel ale to już nie moja sprawa smile.gif

Ad. zapytania, co Ci nie trybi? Jakiś błąd? Cokolwiek ? Hee??
sazian
Cytat(przem1969 @ 19.08.2013, 22:03:30 ) *
Nie chodzi o cudzysłowy skopiowałem dlatego. Po to.

1)dlatego że co ?
2)po co?
kończ zdania, będzie łatwiej zrozumieć Twoje wypowiedzi wink.gif


skoro pole jest typu int to zakładam że czas jest zapisywany w formacie unixowym. Jeśli chcesz wykonywać na nich normalne operacje przy pomocy mysql musisz je przekształcić http://dev.mysql.com/doc/refman/5.5/en/dat..._unix-timestamp http://dev.mysql.com/doc/refman/5.5/en/dat...n_from-unixtime


oczywiście jeśli upierasz się przy czasie unixowym można to zrobić inaczej. Zauważ że zapisujesz liczbę sekund, a chcesz uzyskać 60 dni, więc jak łatwo zauważyć 60 sekund *60 minut = 1 godzina , idąc dalej 60 sekund *60 minut *24 godziny =1 dzień czyli 60 sekund * 60 minut *24 godziny * 60 dni=liczba sekund w 60 dniach.
Idąc tym tropem można łatwo zauważyć że jeśli do dowolnej daty dodany liczbę sekund mieszczącą się w 60 dniach i ta suma jest większa od obecnej daty to jest to szukana przez ciebie data
czyli 5184000+data>UNIX_TIMESTAMP(NOW())
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.