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

Преобразувайте низ/varchar към дата между MySQL таблици

Разгледайте STR_TO_DATE функция:

UPDATE yourtable
SET
  new_column = STR_TO_DATE(varchar_date, '%m-%d-%Y')
WHERE
  STR_TO_DATE(varchar_date, '%m-%d-%Y') IS NOT NULL

И след това същата заявка, с формат на датата като '%m/%d/%Y' , а след това отново с '%M %D, %Y' .Ако форматът не съвпада, STR_TO_DATE ще върне NULL и редовете няма да бъдат актуализирани.

Ако искате да вмъкнете съществуващите си данни в нова таблица, можете да използвате нещо подобно:

INSERT INTO new_table (ID, col1, col2, new_column)
SELECT
  ID, col1, col2,
  COALESCE(STR_TO_DATE(varchar_date, '%m-%d-%Y'),
           STR_TO_DATE(varchar_date, '%m/%d/%Y'),
           STR_TO_DATE(varchar_date, '%M %D, %Y'))
FROM oldtable

(new_column е колона за дата и след това можете да форматирате както искате, като използвате PHP или използвайки DATE_FORMAT)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпълнете множество заявки с помощта на един обект на JDBC Statement

  2. Как да покажа изображение от база данни в CodeIgniter?

  3. Трябва ли да mysql_real_escape_string въведената парола във формуляра за регистрация?

  4. Как да получа максимума от две стойности в MySQL?

  5. MySQL:Не можете да посочите целева таблица „задачи“ за актуализиране в клауза FROM