Столбец типа «Local Datetime» не совпадает с типом «TIMESTAMP» в базе данных MySQL - PullRequest
0 голосов
/ 16 мая 2019

У меня возникла проблема совместимости типов в MySQL версии 5.6.У меня есть эти данные в формате Local Date time (2007-01-01T00: 25: 47), и мне нужно записать их в базу данных, но я не могу найти соответствующий тип, совместимый с MySQL.

Я уже пробовалс:

  • DATETIME
  • TIMESTAMP

Есть предложения?

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Ваша проблема в том, что T в вашем Local Date time делает значение несовместимым со столбцами MySQL DATETIME или TIMESTAMP. Однако вы можете обойти это, используя STR_TO_DATE для преобразования формата или используя REPLACE для замены T пробелом (что делает его совместимым с MySQL datetime ). Например:

create table test (d datetime, t timestamp);
insert into test values 
(str_to_date('2007-01-01T00:25:47', '%Y-%m-%dT%H:%i:%s'), str_to_date('2007-01-01T00:25:47', '%Y-%m-%dT%H:%i:%s')),
(replace('2007-01-01T00:25:47', 'T', ' '),replace('2007-01-01T00:25:47', 'T', ' '));
select * from test

Выход:

d                       t
2007-01-01 00:25:47     2007-01-01 00:25:47
2007-01-01 00:25:47     2007-01-01 00:25:47

Демонстрация на dbfiddle

0 голосов
/ 16 мая 2019

Вы пытались использовать команду MySQL для разбора строки на дату?

STR_TO_DATE(str,format)

Вы можете попробовать преобразовать ваш текущий тип в строку, а затем передать ее через команду STR_TO_DATE, чтобы затем сохранить вВаша база данных в правильном формате.

https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date

...