2016-02-26 2 views
0

У меня есть mysql Db с varchar седловине (ArrangementDate) и содержит даты:Выпуск извлечения данных из Varchar Седло с использованием даты Состояние

Я бегу этот вопрос:

select * from insolvenceyTestdetailstable 
WHERE STR_TO_DATE( `ArrangementDate` , '%d/%m/%Y') BETWEEN '7/5/2009' AND '26/2/2016' 
and ID > 0 LIMIT 50000; 

Но она возвращает 0 результат, когда в БД я отчетливо вижу строки как:

27/2/2015 
9/10/2013 
9/10/2012 

Любые предложения?

ответ

1

Проблема должна быть формат даты сравнить с.

заменить '7/5/2009' с 2009-05-07 и '26/2/2016' с '2016-02-26'

вы можете легко тест действительные даты, запрашивая его отборной

select DATE('2015-02-27') as D1, DATE('27/2/2015') as D2; //D1 valid, D2 null 

ваше заявление должно выглядеть

select * from insolvenceyTestdetailstable 
WHERE STR_TO_DATE( `ArrangementDate` , '%d/%m/%Y') BETWEEN '2009-05-07' AND '2016-02-26' 
and ID > 0 LIMIT 50000; 
+0

Yup выглядит отлично, спасибо – confusedMind

0

Дополнительный формат необходим.

http://sqlfiddle.com/#!9/c898d1/6

select 
    * 
from 
    insolvenceyTestdetailstable 
WHERE 
    STR_TO_DATE(`ArrangementDate`,'%e/%c/%Y') BETWEEN STR_TO_DATE('7/5/2009','%e/%c/%Y') AND STR_TO_DATE('26/2/2016','%e/%c/%Y') and 
    ID > 0 
LIMIT 50000 
+0

Nope не работает – confusedMind

+0

Pls проверяет результат sqlfiddle. Я проверил ваши данные и работает, как и ожидалось. @confusedMind –

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