2012-06-04 3 views
0

Я кодирую для поиска данных, сравнивая dateTime. В веб-форме ввод значения пользователя 2012-06-04 магазина в $_REQUEST['dateSearch']. Я создаю dateTime объект от:Формат datetime по умолчанию в mySQL

$dateObj = date_create_from_format("Y-m-d",$_REQUEST['dateSearch']); 
$dateParam = $dateObj->format("Y-m"); 

Затем я использую $dateParam в SQL запрос, чтобы найти данные

$sql = " 
    SELECT * 
    FROM `temp` as `t` 
    WHERE `t`.`date` LIKE '$dateParam%' 
"; 

все в порядке, но я не уверен, что MySQL использовать только во все дни один dateTime формат Y-m-d H:i:s. Здесь $dateParam = $dateObj->format("Y-m"); Я установил формат по умолчанию «Y-m». Не меняется ли формат по умолчанию? Я не хочу жесткий формат Y-m-d H:i:s в коде, а не, я думаю, лучше получить строку формата из системы для использования. Как получить стандартную строку dateTime из mySQL ???

+1

BTW, 'LIKE '$ dateParam%' 'является довольно неэффективный метод поиска, так как он выполняет поиск путем сравнения текстовых значений. 'ГДЕ ГОД (дата) = 2012 И МЕСЯЦ (дата) = 6', вероятно, будет более результативным, поскольку он позволяет MySQL использовать собственный формат даты. – deceze

ответ

4

Вы поняли, Y-m-d H:i:s
тип ТОЛЬКО формат даты и времени данных.

Y-m-d = date 
H:i:s = time 

Вот почему назван datetime

Чтобы изменить формат возвращаемых данных для DateTime в MySQL,
вы можете использовать date_format функцию в MySQL

Такие, как,

date_format('%Y-%m') = 2012-06 
+0

спасибо! Я понимаю, что должен заставить mySQL играть с нашим правилом DATE_FORMAT(). Благодарю. – Davuz

+0

Что делать, если я хочу установить формат datetime по умолчанию в MySQL на «Y/m/d H: i: s»? Является ли это возможным? –

+0

Что бы вы хотели сделать? Форматирование данных должно выполняться на пользовательском интерфейсе, который потребляет данные. – ajreal

Смежные вопросы