2013-07-25 2 views
0

У меня есть страница поиска для моих пользователей, и одна из вещей, которую я хочу, чтобы они могли выполнять, - это поиск элементов в нашей БД с использованием временного диапазона.Помощь с поиском MySql DB с использованием даты и времени

В настоящее время мой запрос выглядит следующим образом:

select **** 
from **** 
where created_on >='{$errTimeDayOne}' and created_on <= '{$errTimeDayTwo}' 

Так, скажем $errTimeDayOne = 2013-03-24 00:00:00 и $errTimeDayTwo = 2013-04-01 01:00:00 он будет искать между этим диапазоном. Я пытаюсь выполнить поиск между 00:00:00 - 01:00:00 по датам 2013-03-24 - 2013-04-01. Любые мысли или предложения?

Update:

Мой запрос теперь выглядит следующим образом:

SELECT call_id, priority_name, caller_name, 
cust_name, cust_rep, caller_dept, 
DATE_FORMAT(created_on , '%Y-%m-%d') AS created_on, 
DATE_FORMAT(updated_on, '%Y-%m-%d') AS updated_on, 
source_name, created_by, cat_name, subcat_name 
FROM calls INNER JOIN categories ON calls.cat_id = 
categories.cat_id INNER JOIN ticket_priority ON 
calls.ticket_priority = ticket_priority.priority_id 
INNER JOIN ticket_source ON calls.ticket_source = 
ticket_source.source_id LEFT OUTER JOIN subcategories 
ON calls.subcat_id = subcategories.subcat_id WHERE 
created_by = 'brett.little' AND (DATE(created_on) 
between '2013-03-01' and '2013-08-01') AND 
(TIME(created_on) between '1:00:00' and '16:00:00') 

Он отображает результаты, когда я выхожу из «(TIME (created_on) между '1:00:00' и '16: 00:00 ')'. Может ли это иметь какое-либо отношение к date_format в начале запроса?

+0

Какого типа данных является вашим 'created_on' столбец? –

+1

Тип данных для created_one - DATETIME –

ответ

1

Вы должны улучшить положение, чтобы проверять время и дату отдельно:

WHERE (DATE(created_on) BETWEEN '2013-03-24' and '2013-04-01') 
    AND (TIME(created_on) BETWEEN '00:00:00' AND '01:00:00') 
Смежные вопросы