![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
jak napisać wyrażenie SQL które wyszuka wartość najbardziej odpowiadającą wzrocowi.
dokładnie chodzi o porównywanie dat. przykład: w tabeli są wiersze z datami 2008-05-01, 2008-05-04. Wzorzec to 2008-05-02. Zapytanie ma zwrócić datę najbliższą, czyli 2008-05-01 z góry dziękuję za pomoc....wszelkie podpowiedzi, linki, lub rozwiązania mile widziane (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Sprawa PILNA na wczoraj (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
no tak tylko że to wyrażenie zwróci daty z maja 2008 a mi chodzi o tylko jedną konkretną datę/dzień :]
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
a jaki typ ma rekord data?
DATETIME czy TMESTAMP? Ten post edytował cojack 31.05.2008, 15:42:33 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
typ DATE , to jest baz MySQL
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
nie testowane.
działa na bank. no tak tyle że jak będą 2 daty w tabeli, pierwsza to 2008-04-30 a druga to 2008-05-03, to wynik tego zapytania zwróci mi tylko 2008-04-30 a wynik ma właśnie być 2008-05-03, czyli ta bliższa data (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dziekuję za aktywność, i nadal potrzebuje pomocy |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
lub
musi któreś działać...
ta ostatnia to jest z poprawką z @irc.pl #php.pl Ten post edytował cojack 31.05.2008, 18:39:14 |
|
|
![]() ![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
ok spróbuję , ale co oznacza ta komenda desc? (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ;o ad poprzedniej odpowiedzi....pewnie działa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale nadal nie wskazuje tej bliższej daty do wzorca...a wzorzec będzie dynamicznie zmieniany. polecenie musi chyba wyliczać czy mniej dni jest od wzorca do późniejszej daty czy do wcześniejszej daty
.... nawet tutaj polecenie nie wie czy wzorzec, załóżmy 2008-05-01 jest bliższy 2008-04-30 czy 2008-05-03...ot cały szkopół (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) i jeszcze jeden problem dlaczego mają w tabeli wiersze 2008-05-22 i 2008-05-31, wykonując składnię: CODE Select * FROM tabela WHERE data > 2008-05-21 LIMIT 1 zwraca ona datę nie 2008-05-22 tylko 2008-05-31? nie kumam tego, jakby nie widział tego wiersza ok apropos tego nie widzenia dat 2008-05-22 to była wina tego że wyników nie posortowałem według kolumny "data" :/ (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował morris4life 31.05.2008, 18:29:43 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
Kicok ale jeżeli on za date poda dzień np: 2008-05-02 to wynik mu zwróci 0, a jak poda wynik np: 2008-04-28 to wynik zwróci mu 6, bo DATEDIFF zwraca różnice, tyle... jakoś nie rozumiem Twojego toku rozumowania, możesz wyjaśnić?
Ten post edytował cojack 31.05.2008, 19:21:18 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 2 Dołączył: 17.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
A może tak:
lub tak:
Improwizuję, nie sprawdzałem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Polecam funkcje daty i czasu w MySQL Pozdr. Wodzu Ten post edytował Wodzu 31.05.2008, 19:27:37 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Kicok ale jeżeli on za date poda dzień np: 2008-05-02 to wynik mu zwróci 0, a jak poda wynik np: 2008-04-28 to wynik zwróci mu 6 `data` w moim zapytaniu oznacza kolumnę z datami, a nie "miejsce w którym należy wstawić swoją datę". Tego w ogóle nie powinno się ruszać. Miejsce w zapytaniu w którym można podać swoją datę masz na czerwono - ja jako przykład podałem '2008-05-02' |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
a od której wersji MySQL działa funkcja DATEDIFF?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) bo ja mam 3.32 i chyba nie rozpoznaje jej :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:32 |