Sprawdzanie miesiąc przed upływem czasu. |
Sprawdzanie miesiąc przed upływem czasu. |
16.11.2017, 11:50:08
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
Witam, chcę zrobić powiadomienie, które informuje miesiąc przed o końcu upływie gwarancji i żeby wyświetlało komunikat po upływie gwarancji dopóki administrator nie zaznaczy, że gwarancja wygasła.
Zrobiłem takie zapytanie
Problem jest taki, że pokazuje mi rekordy, gdzie gwarancja jest ważna jeszcze rok, dwa, pięć, a chciałbym aby pokazywało tylko te, gdzie pozostało 30 dni lub mniej. Nie wiem do końca jak zrobić to zapytanie. zakres_gwarancji jest w bazie danych jako typ date |
|
|
16.11.2017, 11:52:54
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
DATE_ADD, DATE_SUB
http://kawalekkodu.pl/post/ktora-godzina-p...-czasie-w-mysql -------------------- |
|
|
16.11.2017, 12:32:17
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
|
|
|
16.11.2017, 12:52:48
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Na pewno nie może pokazywać od aktualnej daty w górę, taki warunek wybierze rekordy od 2017-10-16 włącznie wzwyż.
-------------------- |
|
|
16.11.2017, 13:36:56
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
Aktualnie do testu mam 3 rekordy w bazie danych z gwarancją do 2017-11-14, 2017-11-17 i 2019-11-16 a zapytanie wywołuje mi rekordy z datami 2017-11-17 oraz 2019-11-16
|
|
|
16.11.2017, 13:43:30
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Jaki wynik daje:
? -------------------- |
|
|
16.11.2017, 13:50:41
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
|
|
|
16.11.2017, 13:58:25
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
A takie?
-------------------- |
|
|
16.11.2017, 14:09:12
Post
#9
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
W obu wypadkach zwraca 1
|
|
|
16.11.2017, 14:11:27
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
W takim razie pokazujesz niepełne zapytanie (są też inne warunki), albo pole gwarancji wcale nie jest typem DATE.
-------------------- |
|
|
16.11.2017, 14:20:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
Zakres gwarancji, type: date więc typ jest date.
To jakby to zapytanie miało w takim razie wyglądać, bo już się podubiłem |
|
|
16.11.2017, 14:32:37
Post
#12
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Jeśli jakiś rekord tabeli drukarki w polu zakres_gwarancji rzeczywiście zawiera datę 2017-11-14, to zapytanie:
musi go wybrać. -------------------- |
|
|
16.11.2017, 16:07:11
Post
#13
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Kod SELECT *
FROM drukarki WHERE DATE_SUB(zakres_gwarancji, INTERVAL 31 DAY) < CURDATE(); |
|
|
16.11.2017, 18:25:42
Post
#14
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 16.11.2017 Ostrzeżenie: (0%) |
Dziękuje bardzo za pomoc dla wszystkich.
|
|
|
Wersja Lo-Fi | Aktualny czas: 18.04.2024 - 18:59 |