2015-04-20 3 views
0

Как мне задать поле базы данных DateTime? У меня есть переменная PHP $ date (формат ГГГГ-ММ-ДД). Дата регистрации в моей базе данных есть ГГГГЭ-ММ-ДД ЧЧ: MM: формат SS. Я использую MySQL 5.5.Получить DateTime знать Дата

Код ошибки ниже:

SELECT * FROM `posts` WHERE `date`LIKE $date 

Обратите внимание, что мне нужно получить строки с форматом YYYY-MM-DD HH: MM: SS

+0

Что такое тип данных этого поля даты? –

ответ

1

Вы можете использовать LIKE, как это:

SELECT * FROM `posts` WHERE `date` LIKE '$date %' 

или лучшее решение:

SELECT * FROM `posts` WHERE `date` BETWEEN 
    '$date 00:00:00' AND '$date 23:59:59' 
+0

Что-то не так. Я не знаю значение даты. Пользователь должен ввести данные, и я буду хранить их в переменной $ date (YYYY-MM-DD) – Geronimo

+0

@Geronimo Возможно, вы опубликовали это до моего редактирования. Я скорректировал его, чтобы использовать переменную '$ date'. – ceejayoz

+0

Спасибо! Это работает. – Geronimo

0

Вы можете использовать left функцию:

SELECT * FROM `posts` WHERE left(`date`,10) = $date 

Это даст первые 10 символов из вашего поля даты и будет соответствовать значению в вашей переменной.

+0

Это будет запускать 'LEFT()' для каждой отдельной строки в базе данных, не обращая внимания на индексы и, как результат, очень неэффективно. – ceejayoz

+0

Возможно, я ошибаюсь, но похоже, что я сравниваю HH: MM: SS и YYYY-MM-DD. Или нет? – Geronimo