Datetime równe lub większe niż dzisiaj w MySQL
Jak najlepiej postępować:
SELECT * FROM users WHERE created >= today;
Uwaga: created jest polem datetime.
10 answers
SELECT * FROM users WHERE created >= CURDATE();
Ale chyba masz na myśli created < today
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-25 16:14:00
SELECT * FROM myTable WHERE DATE(myDate) = DATE(NOW())
Czytaj więcej: http://www.tomjepson.co.uk/tutorials/36/mysql-select-where-date-today.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-03 14:52:50
SELECT * FROM users WHERE created >= NOW();
Jeśli kolumna jest typu datetime.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-03 14:52:14
Jeśli 'created' to typ datetime
SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);
CURDATE () oznacza również '2013-05-09 00:00:00'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-09 08:29:09
Odpowiedź oznaczona jest myląca. Postawione pytanie brzmi DateTime
, ale stwierdziło, że potrzebne było tylko CURDATE()
.
Najkrótsza i prawidłowa odpowiedź to:
SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-14 03:10:59
Jeśli kolumna ma indeks, a na kolumnie jest zastosowana funkcja, indeks nie działa i następuje pełne skanowanie tabeli, powodując bardzo powolne zapytanie.
Złe Zapytanie; to zignoruje indeks w kolumnie date_time
select * from users
where Date(date_time) > '2010-10-10'
Aby wykorzystać indeks na kolumnie utworzonej Typu datetime w porównaniu z dzisiejszą/bieżącą datą, można zastosować następującą metodę.
Rozwiązanie dla OP:
select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')
Próbka do pobrania danych na dziś:
select * from users
where
created >= CONCAT(CURDATE(), ' 00:00:00') AND
created <= CONCAT(CURDATE(), ' 23:59:59')
Lub użyć pomiędzy Dla short
select * from users
where created BETWEEN
CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')
Wskazówka: Jeśli musisz wykonać wiele obliczeń lub zapytań dotyczących dat, a także czasu, bardzo przydatne jest zapisanie daty i czasu w oddzielnych kolumnach. (Divide & Conquer)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-06 12:01:27
SELECT * FROM users WHERE created >= now()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-02 15:25:17
Poniższy kod zadziałał dla mnie.
declare @Today date
Set @Today=getdate() --date will equal today
Select *
FROM table_name
WHERE created <= @Today
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-20 12:50:17
SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) , '-', SUBSTRING( json_date, 7, 2 ) , '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();
Json_date ["05/11/2011"]
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-18 10:32:39
Możesz zwrócić wszystkie wiersze i użyć funkcji PHP datediff wewnątrz instrukcji if, chociaż spowoduje to dodatkowe obciążenie serwera.
if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){
}else{
echo " info here";
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-09 07:11:25