Вопрос по mysql – MySQL - Как проанализировать строковое значение в формате DATETIME внутри инструкции INSERT?

38

у меня естьMySQL databaseсо столбцом типа датыDATETIME.

Я получаю строковое значение для даты / времени из внешнего приложения. Это строковое значение выглядит так:

'5/15/2012 8:06:26 AM'

MySQL выдает ошибку на INSERT:"Error. Incorrect datetime value", Мой обходной путь должен был изменить тип столбца наVARCHAR, который работает, но мне действительно нужны данные в качестве правильной даты & amp; Время для будущего использования.

Я исследовал принятое форматирование дляMySQL DATETIME значения и обнаружили, чтоMySQL хочетDATETIME отформатировать как'YYYY-MM-DD HH:MM:SS'.

Я не могу изменить внешнее приложение, чтобы переформатировать строку даты / времени в формате, поэтому мой единственный шанс - справиться с этим.

Я думаю, мне нужно разобрать существующую строку, используяMySQL syntaxвнутри моегоINSERT но я не уверен, как это сделать. У меня есть идея, что мне нужно использоватьSELECT пункт, возможноSTR_TO_DATEкак-то в сочетании с моим заявлением INSERT.

Вот мое текущее заявление INSERT. Я удалил другие поля, которые не вызывают проблемы, просто чтобы привести пример в порядок.

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES ('5/15/2012 8:06:26')

Спасибо за любую помощь, яSQL новичок.

Ваш Ответ

1   ответ
83

STR_TO_DATE() функция для анализа строки, которую вы пытаетесь вставить:

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES
  (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededSTR_TO_DATE('2/15/2017 05:16:56 PM','%m/%d/%Y %r')Error: User Rate Limit Exceeded

Похожие вопросы