Возврат строк на определенную дату в MySQL

#php #mysql #sql

#php #mysql #sql

Вопрос:

Я просмотрел прошлые вопросы, но не смог найти подходящего соответствия. Как мне вернуть все строки MySQL, где временная метка столбца относится к дню X, где день X содержится в переменной PHP в следующем формате: «13 Apr 2011», а временная метка в базе данных представлена в следующем формате: «2011-02-25 22:00:17»?

 SELECT * WHERE timestamp (need to add here)
  

Спасибо!

Ответ №1:

Если строка даты (в вашей переменной PHP) имеет согласованный формат, вы можете использовать функцию MySQL str_to_date, чтобы преобразовать ее в ДАТУ-время, подходящее для сравнения.

Ответ №2:

 SELECT * FROM tablename WHERE DATE_FORMAT(timestamp,'%e %b %Y') = 'date coming from php'
  

(Это противоположно предложению Андри, оно преобразует временную метку в строку для сравнения)

Комментарии:

1. Вы знаете, сравнивает ли это времена в виде строк или в виде значений времени?

2. Это было идеально для меня, потому что оно возвращает каждый результат в этот день, тогда как использование временной метки unix возвращало бы только точные результаты, иначе мне пришлось бы усложнить запрос.

Ответ №3:

Что вам нужно, так это STR_TO_DATE

 SELECT * WHERE DATE(`timestamp`) = STR_TO_DATE('$var','%M %d %Y') 
  

Подробнее здесь