У меня есть таблица SQL, где один из столбцов «Создатель» тип данных VARCHAR В этом столбце хранятся значения, подобные этому: Mike Jones|05-17-2015 1:21 pm
состоящий из человека, который создал запись, дату и время ее создания.
Мне нужно использовать Дата часть этих данных varchar для формирования запроса SQL, чтобы мы могли сгенерировать список заявок, созданных между двумя датами. Мы не можем легко реструктурировать таблицу, поэтому я застрял, работая над этим в текущем формате, иначе мы просто добавили бы поле даты CREATED и сравнили бы его.
SQL-запрос заключается в следующем:
SELECT
ticknumb,
CNAMEs,
создатель,
ticktype,
tickstatusFROM
aticketsWHERE
создатель>= '%05-24-2015%' AND
создатель<= '%05-30-2015%' AND
tickstatusNOT LIKE 'Closed,Complete'
Есть ли способ сделать это непосредственно в запросе SQL без необходимости сначала зацикливаться в php, чтобы извлечь и сравнить самые ранние / самые поздние даты?
Вот фрагмент SQL, как вы можете преобразовать свое значение в столбце varchar в тип даты.
SELECT STR_TO_DATE(SUBSTRING_INDEX(`creator`, '|', -1), '%m-%d-%Y %h:%i %p')
http://sqlfiddle.com/#!9/710a2/7/0
Еще одно вдохновение
Как преобразовать строку в дату в MySQL?
Как разбить строку имени в MySQL?
Я надеюсь, что это то, что вы ищете.
Других решений пока нет …