2015-08-11 2 views
0

при вставке данных в MySQL и датах не в приятном формате SQL, например yyyy-mm-dd, какой подход вы применяете для исправления этого столбца?Каков наилучший способ форматирования дат для MySQL

Обычно я пишу пользовательский скрипт ETL для обработки форматирования даты при вставке данных, но мне интересно, есть ли более быстрый и простой способ? как что-то, что я мог бы сделать только в mysql после загрузки данных?

, например, у меня есть различные файлы, каждые с различными форматами дата ...

2013 Mar 05 23:26:32 
01/03/2015 
01/03/2015 23:26:32 

раздражающего право?

+0

Вы просмотрели функцию STR_TO_DATE: https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date – PaulF

+0

Я бы, попробовал это, но я получаю null в столбце convertDate? однако, когда я пытаюсь использовать его на строке, он преобразует ... SELECT date, STR_TO_DATE (дата, '% Y% m,% d') в виде convertDate Из таблицы – user3768071

+0

нормально, понял, что я делаю неправильно. ура PaulF – user3768071

ответ

0

при вставке данных в MySQL и датах не в удобном формате SQL, таком как yyyy-mm-dd, какой подход вы применяете для исправления этого столбца?

  1. Разберите даты на клиенте.
  2. Передайте дату как объект типа даты.
  3. Повторите для все значения, которые я добавляю в соответствии с требуемым типом в каждом случае.

Это имеет два преимущества:

  • мне не нужно знать, какой формат требуется ядро ​​базы данных (который может зависеть от локали сервера, случается, используя).
  • Мне не нужно беспокоиться о цитировании этих значений, чтобы избежать атак SQL-инъекций.

Резюме: клиенты базы данных понимают, как отправлять типизированные данные в свою базу данных: использовать эту функциональность, а не воссоздавать ее.

+0

richard ... был ли ваш ответ какой-то загадкой, как в плетенке фильма, где пингвин может отвечать на вопросы с загадкой? – user3768071

+0

@ user3768071 Возможно, я слишком много принимаю, но вы должны использовать какой-то тип клиента в базе данных, (если вы не строите все вручную в SQL Workbench), клиент сделает это для создания SQL-запросов для вас. Так что пусть он строит параметризованные запросы. – Richard

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