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

mysql datetime insert

132303 просмотра

1 ответ

336 Репутация автора

У меня есть MySQL database, с колонкой, которая является типом даты DATETIME.

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

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

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

Я исследовал приемлемое форматирование для 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новичок.

Автор: Tim Murphree Источник Размещён: 17.05.2012 12:56

Ответы (1)


88 плюса

102258 Репутация автора

Решение

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

INSERT INTO tblInquiry (fldInquiryReceivedDateTime) VALUES
  (STR_TO_DATE('5/15/2012 8:06:26 AM', '%c/%e/%Y %r'))
Автор: eggyal Размещён: 17.05.2012 01:04
Вопросы из категории :
32x32