Mysql
 sql >> база данни >  >> RDS >> Mysql

Не може да се конвертира varchar в datetime в MySql

Трите стъпки, споменати в @Arkain, биха били с помощта на функцията STR_TO_DATE

-- add the new column
ALTER TABLE `my_table` ADD COLUMN `date_time` DATETIME; 

-- update the new column with the help of the function STR_TO_DATE
UPDATE `my_table` SET `date_time` = STR_TO_DATE(`_time`, '%Y%m%d%H%i');

-- drop the old column
ALTER TABLE `my_table` DROP COLUMN `_time`;

Пълният списък със спецификатори за STR_TO_DATE може да бъде намерен на адрес DATE_FORMAT , ето откъс с тези, които използвах:

%d  Day of the month, numeric (00..31)
%H  Hour (00..23)
%i  Minutes, numeric (00..59)
%m  Month, numeric (00..12)
%Y  Year, numeric, four digits

Демо на АКТУАЛИЗИРАНЕТО

Ако новата колона трябва да има атрибута NOT NOLL, един от начините може да бъде да зададете sql режима преди операцията на '' и да нулирате sql_mode по-късно:

SET @old_mode = @@sql_mode;
SET @@sql_mode = '';        -- permits zero values in DATETIME columns

ALTER TABLE `my_table` ADD COLUMN `date_time` DATETIME NOT NULL; 
UPDATE `my_table` SET `date_time` = STR_TO_DATE(`_time`, '%Y%m%d%H%i');
ALTER TABLE `my_table` DROP COLUMN `_time`;

SET @@sql_mode = @old_mode;

Актуализирана демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълнете Datagridview с MySQL данни

  2. Как да задам избрания елемент в падащо меню

  3. Как да изпълня mysql заявка в wordpress?

  4. Как да инсталирате MySQL на Ubuntu

  5. Избиране на реда с максимум в колона - MySQL