Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pole daty
Forum PHP.pl > Forum > Bazy danych > MySQL
derecyori
Witam wszystkich,

mam tabelę w której znajdują się pola daty (np. pole urodzin). Chciałbym z tabeli wybrać pola gdzie np. urodziny będą za tydzień ale nie wiem jak. Próbowałem z
  1. DATE_SUB(CURDATE(),INTERVAL 7 DAY);
ale nie wiem jak podstawić rok z daty urodzin.

Serdecznie proszę o pomoc.

P.S. Podobny temat był już na forum ale tam chodziło o odjęcie od pola 7 dni co mi nie jest pomocne.
mortus
Jeśli to ma być dokładnie za tydzień, to po prostu:
  1. SELECT * FROM `tabela` WHERE `data_urodzenia` = DATE_SUB(CURDATE(),INTERVAL 7 DAY)

Oczywiście w polu `data_urodzenia` dane mają być typu DATE.
Jeżeli chcesz wyszukać osoby, które w kolejnym tygodniu obchodzą urodziny, to możesz skorzystać z BETWEEN ... AND ....
Należy pamiętać, że operacje na datach do najszybszych nie należą.
derecyori
Wszystko pięknie ale jeżeli dam
  1. SELECT * FROM `tabela` WHERE `data_urodzenia` = DATE_SUB(CURDATE(),INTERVAL 7 DAY)

to nic mi nie znajdzie. Przykładowe pole data_urodzenia to "1985-11-15" a jeżeli skorzystam z CURDATE() to podstawi mi "2011-11-08" czyli brak rekordów w tabeli.
nospor
DATE_FORMAT i daty po obu stronach = sformatuj tylko do miesiąca i dnia.
Sephirus
Prosze wink.gif

  1. SELECT * FROM `tabela` WHERE CURDATE() = DATE_SUB(CONCAT(YEAR(CURDATE()),'-',MONTH(`data_urodzenia`),'-',DAY(`data_urodzenia`),INTERVAL 7 DAY)
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.