Nano Hash - криптовалюты, майнинг, программирование

select * INTO outfile генерирует дату в неправильном формате

Я использую приведенный ниже sql для экспорта данных в файл csv:

select * INTO outfile 'customer.csv'
    FIELDs terminated by ',' enclosed by '"'
    LINES terminated by '\n'
    from CUSTOMER customer
    where customer.date_created < '2015-10-22 10:00:00';

Я получаю этот результат в csv:

введите здесь описание изображения

Проблема в том, что данные не импортируются из этого сгенерированного CSV, потому что формат даты отличается от формата БД.

Формат даты БД: гггг-мм-дд чч:мм:сс. Также нулевые значения заменяются на \n, что также приводит к сбою при импорте.

Как я могу создать столбцы csv с правильным форматом даты yyyy-mm-dd hh:mm:ss и нулевыми/пустыми значениями?

Ошибки: неправильное значение даты и времени: «23/07/2015 11:55» для столбца «DATE_CREATED» в строке 1. Неверное целочисленное значение: «\N» для столбца «column_name» в строке 1.

Примечание. Я использую mysql workbench для импорта файла. Я не хочу менять формат/данные непосредственно в CSV-файле.

Спасибо

ОБНОВЛЕНИЕ: благодаря AdrianBR я понял, что сначала открывал файл с помощью Excel, который переопределял формат даты, поэтому неправильный формат даты отображался даже в notepad++. \n все еще проблема. При первом открытии с помощью блокнота ++ это выглядит так: «100», «0», «2015-12-02 10:16:36», «2015-12-02 10:16:36», «0». ,\Н,

14.12.2015

  • Это MySQL или MS SQL Server? Вы отметили это как оба. И вы показали нам, что думает программа для работы с электронными таблицами в CSAV-файле, а не то, что там на самом деле. Откройте его в текстовом редакторе и посмотрите. 14.12.2015
  • формат даты отличается от формата БД. Базы данных обычно хранят даты в виде двоичных значений без форматирования. Вам решать, как вы форматируете их при отображении. 14.12.2015
  • это excel, он же FTFY 14.12.2015
  • @MattGibson Он не упомянул о том, как он хранится, но как он отображается, и это будет ISO, если его сравнить с этой строкой iso. 14.12.2015
  • @symcbean afaik ms sql не имеет внешнего файла, но это, вероятно, не имеет значения, так как я предполагаю, что его CSV в порядке, как вы сказали 14.12.2015

Ответы:


1

Проблема скорее всего не в mysql.

Скорее всего, это связано с тем, как Excel отображает и позже сохраняет даты. к проблеме:

Откройте файл в текстовом редакторе, таком как блокнот или блокнот++, и проверьте, как выглядит дата, в формате ISO или нет. Наверное, все будет хорошо.

Теперь, если вы откроете его в Excel, он будет отображаться в локальном формате.

Если вы сохраните файл сейчас, вы, вероятно, перезапишете формат даты ISO локальным форматом даты excel, что сделает его больше недействительной импортируемой датой mysql.

Мораль: не используйте Excel при работе с данными, используйте его только для отображения диаграмм. Excel делает предположения о ваших данных и вмешивается в них самым неожиданным образом. Помните, чем была ставка налога на добавленную стоимость 1,19? Кажется, Excel считает, что это то же самое, что и 19 января. Этот целочисленный идентификатор? Excel считает, что лучше записать его в экспоненциальном представлении и округлить до первых 4 цифр. Эта дата Исо? Excel считает, что лучше угадать, какой месяц, а какой день. Эта десятичная точка? наверняка вы хотели, чтобы запятая была десятичной, а точка - разделителем тысяч. ФТИ!

14.12.2015
  • +1 Excel переопределял формат даты, поэтому при открытии его в блокноте ++ также отображался неправильный формат. Формат даты теперь работает, но \n все еще вызывает проблему? 14.12.2015
  • \N является заполнителем для нуля. Если вы импортируете данные через плагин excel (mysql для excel), они будут отображаться правильно. В противном случае вы можете исправить это при записи в файл outfile, обернув свои столбцы в ifnull (intcolumn, 0) или ifnull (stringcol, '') 14.12.2015
  • Вы также можете исправить это в Excel после открытия файла, заменив ничего. Имейте в виду, что при загрузке файла с \N обратно в mysql он будет правильно обрабатывать его как нули, поэтому вам на самом деле не нужно с ним связываться. 14.12.2015

  • 2

    возможно, укажите столбцы явно и включите формат в список выбора следующим образом:

    TO_CHAR(моя дата, 'гггг-мм-дд чч24:ми:сс')

    редактировать:

    as in:

    SELECT my_id, my_val1, TO_CHAR( mydate, 'yyyy-mm-dd hh24:mi:ss' )
    FROM mytable
    
    14.12.2015
  • Спасибо, можно поподробнее? Как вы указываете столбец явно? Я новичок в этой области. 14.12.2015
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..