Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể chuyển đổi varchar thành datetime trong MySql

Ba bước mà @Arkain đề cập sẽ có sự trợ giúp của hàm 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`;

Bạn có thể tìm thấy danh sách đầy đủ các từ định nghĩa cho STR_TO_DATE tại DATE_FORMAT , đây là một đoạn trích với những người tôi đã sử dụng:

%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

Demo của CẬP NHẬT

Nếu cột mới phải có thuộc tính NOT NOLL, một cách có thể là đặt chế độ sql trước khi hoạt động thành '' và đặt lại sql_mode sau:

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;

Bản trình diễn cập nhật



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Android Room - Xử lý danh sách các đối tượng trong một đối tượng và kết quả truy vấn

  2. Tìm kiếm chuỗi trong cột văn bản trong MySQL

  3. MySQL Workbench hiển thị kết quả dưới dạng BLOB

  4. Chèn mô hình Backbone.js vào cơ sở dữ liệu MySQL

  5. Tìm nạp và hiển thị dữ liệu cho từng người dùng đã đăng ký trong PHP bằng PDO