Значение даты, изменяемое для старых дат - Импорт CSV
У меня есть файл CSV, который содержит столбец даты рождения. Я импортирую в свою базу данных PostgreSQL, используя инструмент Adobe Campaign (ранее назывался как neolane).
В моем инструменте я предоставил столбец данных о дате рождения в формате мм / дд / гггг чч: мм: сс
Даты, такие как 20.09.1942 12:00:00 и более поздние, при сохранении в базе данных сохраняются правильно, например, 1942-09-20 00: 00: 00 + 06: 30. Не уверен, как рассчитывается доля секунды. Если вы можете прокомментировать это.
Затем более старые значения (все старше 1941 года), такие как 01.10.1941 12:00:00, сохраняются в базе данных как 1941-09-30 23:23:20+05:53:20, что на день старше один упоминается в столбце даты рождения.
Не уверен, если это проблема, связанная с PostgreSQL или с продуктом.
1 ответ
Сначала вы говорите, что пытаетесь импортировать даты, но явно импортируете метки времени. Даты не имеют часов, минут или секунд.
Не используйте временные метки, когда вы хотите дату.
Во-вторых, вы не предоставляете часовой пояс для этих значений, но сохраняете их как "метку времени с часовым поясом".
Я не уверен, какой у вас местный часовой пояс, но если мы попробуем Калькутту, похоже, мы получим аналогичные результаты. Смещения часовых поясов имеют тенденцию становиться немного странными, когда вы идете дальше во времени. Во многих местах до прибытия крупных поездов и телеграфа не было необходимости срочно стандартизировать часовые пояса. Это может занять много времени в зависимости от местной политики.
Итак, если вы можете сделать это, используйте даты.
Если нет, укажите часовой пояс, который вы имеете в виду при сохранении данных, а также не используйте полночь, используйте 10:00 или полдень или аналогичное время. В противном случае изменения часового пояса будут (вполне правильно) влиять на отображаемую дату.
В руководствах обсуждается обработка даты и времени. Там упоминается база данных истории часовых поясов "Olson", которая дает некоторые интересные сведения