2014-10-01 2 views
0

Я хочу найти в столбце Date.MySql Select Query не действует должным образом

Я использую этот запрос:

SELECT * FROM requestserverdb.closedrequests 
WHERE 
ClosingTimeStamp >= '2014-09-04' 
AND 
ClosingTimeStamp <= '2014-09-19'; 

я только получить результаты от 04-09-2014 до 18-09-2014, он не включает в последний день!

также, если я использую:

SELECT * FROM requestserverdb.closedrequests 
WHERE 
ClosingTimeStamp >= '2014-09-04' 
AND 
ClosingTimeStamp <= '2014-09-04'; 

Я не получит никаких результатов на всех!

как прийти?

что я делаю неправильно?

его просто игнорирует знак '=' ...

пожалуйста, помогите :)

Дэйв.

+0

Какой тип данных используется в столбце 'ClosingTimeStamp'? – Jens

+0

@Jens его DateTime. –

ответ

2

Еще один вариант решения этого вопроса - добавить «23:59:59» до конца даты. Это облегчило бы работу с автоматически генерируемыми запросами, чем беспокоиться о продвижении даты в один прекрасный день. Плюс, если вы установите его вперед в день, и у вас действительно есть закрытый запрос с отметкой времени «2014-09-20 00:00:00», которая будет включена в результаты. Я бы предположил, что вы этого не хотите. Вы могли бы сделать это вместо этого.

SELECT * FROM requestserverdb.closedrequests 
WHERE 
ClosingTimeStamp >= '2014-09-04' 
AND 
ClosingTimeStamp <= '2014-09-19 23:59:59'; 
+0

отлично работает - спасибо! –

1

Это потому, что '2014-09-19' означает 19 сентября 2014 года в полночь (00:00:00), поэтому запрос не возвращает записи с ClosingTimeStamp равен 2014-09-19 09:25:00, например. Вы должны добавить один день к верхней границе второго, где состояние и сделать его < вместо <=, чтобы избежать запроса от возвращения любой записи с ClosingTimeStamp равно 2014-09-20 00:00:00

SELECT * FROM requestserverdb.closedrequests 
WHERE 
ClosingTimeStamp >= '2014-09-04' 
AND 
ClosingTimeStamp < '2014-09-20'; 
0

попытаться преобразовать вашу строку в DateTime со временем части :

SELECT * FROM requestserverdb.closedrequests 
WHERE 
ClosingTimeStamp between STR_TO_DATE('2014-09-04 0:0:0' , '%Y/%c/%d %H:%i:%s')) AND 
STR_TO_DATE('2014-09-19 23:59:59' , '%Y/%c/%d %H:%i:%s')) 
Смежные вопросы