programing

MySQL Workbench - 테이블 데이터 가져오기 마법사(모든 날짜/시간 개체를 0000-00 00:00:00:00로 기록)

goodjava 2022. 10. 22. 21:17

MySQL Workbench - 테이블 데이터 가져오기 마법사(모든 날짜/시간 개체를 0000-00 00:00:00:00로 기록)

MySQL Workbench 8.0을 MariaDB에서 사용하고 있습니다.'10.1.37-MariaDB') 서버입니다.

테이블 데이터 가져오기 마법사를 사용하여 세 가지 예제 값을 테이블로 가져오려고 합니다.CSV의 예를 다음에 나타냅니다.

emp_id,Event,Event_start_time,Event_end_time,
example,shift,"2020/11/6 0:00:00","6/11/2020 23:59",
example,lunch,"2020/14/06 13:00:00","2020/14/06 13:30:00",
example,break,"2020/14/06 10:10:00","2020/14/06 10:30:00",

Import 중에 모든 값이 올바르게 표시됩니다.[ Datetime ]필드에 저장합니다( ).Event_start_time,Event_end_time)로 표시됩니다.'0000-00-00 00:00:00'실행 후select진술.

다음의 포맷을 시험해 보았습니다만, 어느 것도 동작하지 않는 것 같습니다.

  • "2020/11/6 0:00:00"
  • 2020/11/6 0:00:00
  • 2020/11/06 00:00:00
  • 2020-11-06 00:00:00

다음 사례가 성공했습니다.

  • 2020-11-06 0:00

하지만 비즈니스 로직에는 초를 포함할 수 있어야 합니다.

게다가 (기존 Datetime 값을 사용하여) 테이블을 내보내는 경우.csv동일한 마법사를 사용하여 재 Import를 시도하면 모든 값이 로딩됩니다.'0000-00-00 00:00:00'다른 사람을 위한 솔루션을 개발하고 있기 때문에 MySQL 스크립팅을 가능한 한 최소화/회피하고 싶습니다. 내가 뭘 잘못하고 있지?

데이트 날짜가 지난 것 같네요YYYY/DD/MM HH:MI:SS포맷. MySQL 관점에서는 유효하지 않습니다.포맷으로 변환해야 합니다.YYYY-MM-DD HH:MI:SS데이터베이스가 제대로 인식할 수 있도록 합니다.

CSV 파일에 데이터가 있는 경우 입력 전처리를 사용하는 구문이 간단한 옵션입니다.표시되어 있는 샘플 데이터에 근거해, 이것은 다음과 같습니다.

load data infile 'myfile.csv'
into mytable (emp_id, event, @event_start_time, @event_end_time)
fields terminated by ',' optionally enclosed by '"'
ignore 1 lines
set 
    event_start_time = str_to_date(@event_start_time, '%Y/%d/%m %H:%i:%s'),
    event_end_time   = str_to_date(@event_end_time,   '%Y/%d/%m %H:%i:%s')

스테이트먼트 옵션과 경우에 따라서는 목표 날짜 형식을 실제 사용에 맞게 조정해야 할 수도 있습니다.

값을 잘못 적었어요.

2020-11-06 0:00:00(Y-M-D)정답입니다.2020-14-06 0:00:00(Y-D-M)틀렸습니다.

언급URL : https://stackoverflow.com/questions/62440169/mysql-workbench-table-data-import-wizard-writing-all-datetime-objects-as-0000