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

MySQL Как выбрать данные из таблицы, которая была записана сегодня?

Используйте PHP и MySQL. В моей таблице есть поле даты (дата и время), записанное функцией NOW() sql. Пример значения данных в этом поле 2010-10-07 10:57:36. Как я могу ВЫБРАТЬ все данные, которые день-месяц-год сегодня. Я пытаюсь использовать код, как показано ниже:

  SELECT * FROM table WHERE date=????
4b9b3361

Ответ 1

SELECT * FROM table where DATE(date)=CURDATE()

Ответ 2

Попробуйте следующее:

SELECT * FROM table WHERE date > CURDATE();

CURDATE() вернет текущую дату как 2011-10-07, которая будет перенесена на 2011-10-07 00:00:00 при сравнении datetime с ней.

Обратите внимание, что если вы используете DATE(date) = CURDATE(), вы будете запускать преобразование даты для каждой строки таблицы, что будет очень плохо для вашей работы, если у вас много строк и/или вам нужно часто выполнять запрос. Также убедитесь, что у вас есть индекс на date, в противном случае оба метода будут еще медленнее.

Ответ 3

SELECT * FROM tableName WHERE DATE(fieldDate) = DATE(NOW());

Ответ 4

Функция date_format позволяет легко переключаться между различными деталями:

Выберите все, начиная с того же дня:

select * from table 
where date_format(date, '%Y-%m-%d') = date_format(now(), '%Y-%m-%d');

Из того же месяца:

select * from table 
where date_format(date, '%Y-%m') = date_format(now(), '%Y-%m');

С того же года:

select * from table 
where date_format(date, '%Y') = date_format(now(), '%Y');

С того же часа:

select * from table 
where date_format(date, '%Y-%m-%d %H') = date_format(now(), '%Y-%m-%d %H');

и т.д.

Ответ 5

Попробуйте это

SELECT * FROM table WHERE DATE(my_date)=DATE(now())

my_date -> column name

Ответ 6

SET @day = '2017-12-12' ;

SELECT * FROM table WHERE dateColumn BETWEEN DATE(@day) AND DATE_ADD(DATE(@day), INTERVAL 1 DAY ) ;

Ответ 7

используйте что-то вроде этого, он точно работает на моем коде (база данных доступа):

select * from Table t where t.column>=Date() and t.column< Date() + 1

Ответ 8

используйте между.

select * from table date between '2010-10-06' and '2010-10-08';