Jaki jest najlepszy sposób na wykonanie następujących czynności:
SELECT * FROM users WHERE created >= today;
Uwaga: utworzone jest polem typu data i godzina.
SELECT * FROM users WHERE created >= CURDATE();
Ale myślę, że masz na myśli created < today
CURDATE()
powrót tylko data, a nie czasCzytaj więcej: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
źródło
jeśli kolumna jest typu datetime.
źródło
Jeśli „utworzono” to data i godzina
CURDATE () oznacza również „2013-05-09 00:00:00”
źródło
Zaznaczona odpowiedź jest myląca. Postawione pytanie brzmi
DateTime
, ale stwierdzone, co było potrzebne, było sprawiedliweCURDATE()
.Najkrótsza i prawidłowa odpowiedź na to jest:
źródło
Jeśli kolumna ma indeks, a do kolumny zostanie zastosowana funkcja, indeks nie działa i następuje pełne skanowanie tabeli, co powoduje naprawdę powolne zapytanie.
Aby korzystać z indeksu i porównać datetime z dzisiejszej / bieżącej daty, co następuje mogą być użyte.
Rozwiązanie dla OP:
Próbka do pobrania danych na dziś:
Lub użyj skrótu BETWEEN
źródło
źródło
Poniższy kod zadziałał dla mnie.
źródło
json_date [„05/11/2011”]
źródło
możesz zwrócić wszystkie wiersze, a następnie użyć funkcji php datediff wewnątrz instrukcji if, chociaż spowoduje to dodatkowe obciążenie serwera.
źródło