Подтвердить что ты не робот

Datetime, равное или большее, чем сегодня в MySQL

Какой лучший способ сделать следующее:

SELECT * FROM users WHERE created >= today;

Примечание: created - это поле datetime.

4b9b3361

Ответ 1

SELECT * FROM users WHERE created >= CURDATE();

Но я думаю, вы имеете в виду created < today

Ответ 3

SELECT * FROM users WHERE created >= NOW();

если столбец является типом datetime.

Ответ 4

Если "created" - это тип datetime

SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);

CURDATE() означает также '2013-05-09 00:00:00'

Ответ 5

Отмеченный ответ вводит в заблуждение. Был задан вопрос DateTime, но указано, что нужно было просто CURDATE().

Самый короткий и правильный ответ на это:

SELECT * FROM users WHERE created >= CURRENT_TIMESTAMP;

Ответ 6

SELECT * FROM users WHERE created >= now()

Ответ 7

Если у столбца есть индекс, и к столбцу применяется функция, то индекс не работает и происходит полное сканирование таблицы, что вызывает очень медленный запрос.

Чтобы использовать индекс и сравнить datetime с сегодняшней/текущей датой, можно использовать следующее.

Решение для ОП:

select * from users
where created > CONCAT(CURDATE(), ' 23:59:59')

Пример получения данных за сегодня:

select * from users
where 
    created >= CONCAT(CURDATE(), ' 00:00:00') AND
    created <= CONCAT(CURDATE(), ' 23:59:59')

Или используйте МЕЖДУ для краткости

select * from users 
where created BETWEEN 
      CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59')

Ответ 8

Следующий код работал у меня.

declare @Today date

Set @Today=getdate() --date will equal today    

Select *

FROM table_name
WHERE created <= @Today

Ответ 9

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" ]

Ответ 10

вы можете вернуть все строки и использовать функцию php датированный внутри оператора if, хотя это добавит дополнительную нагрузку на сервер.

if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){    
}else{    
echo " info here";    
}