#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')
Подробнее здесь