Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie dni dni nowszej daty
Forum PHP.pl > Forum > Bazy danych > MySQL
tomi127
Witam, próbuję się uporać z pewnym problemem. Mianowicie chciałbym, aby rekord typu DATE został uaktualniony w zależności od spełnienia danego warunku:
- Jeżeli data zawarta w rekordzie JEST NOWSZA niż CURDATE() wtedy do aktualnego rekordu dodaj zadaną liczbę dni, w przeciwnym razie dodaj zadaną liczbę dni do CURDATE() i zapisz wynik w tym rekordzie

Udało mi się sklecić takie zapytanie
  1. UPDATE users SET active=DATE_ADD(CASE activeto WHEN (CURDATE() < active) THEN CURDATE() ELSE active END, INTERVAL '2' DAY) WHERE nickname='adres@mail.com'

Niestety, bez względu na wynik porównania (true/false), te dwa dni są dodawane do daty zapisanej w active.

Help :-)
mmmmmmm
  1. UPDATE users SET active=CASE activeto WHEN (CURDATE() < active) THEN DATE_ADD(CURDATE(), INTERVAL '2' DAY) ELSE DATE_ADD(active, INTERVAL '2' DAY) END WHERE nickname='adres@mail.com'
tomi127
Dzięki, co prawda musiałem jeszcze nieco zmodyfikować zapytanie, aby działało tak jak oczekiwałem, jednak Twoja odpowiedź naprowadziła mnie na rozwiązanie. Finalnie zapytanie wygląda tak:
  1. UPDATE users SET active = CASE WHEN (CURDATE() > active) THEN DATE_ADD(CURDATE(), INTERVAL '2' DAY) ELSE DATE_ADD(active, INTERVAL '2' DAY) END WHERE nickname='adres@mail.com'
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.