Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konwertuj string/varchar na datę między tabelami MySQL

Spójrz na STR_TO_DATE funkcja:

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

A potem to samo zapytanie, z formatem daty jako '%m/%d/%Y' , a następnie ponownie z '%M %D, %Y' .Jeśli format się nie zgadza, STR_TO_DATE zwróci NULL i wiersze nie zostaną zaktualizowane.

Jeśli chcesz wstawić istniejące dane do nowej tabeli, możesz użyć czegoś takiego:

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

(nowa_kolumna to kolumna z datą, a następnie możesz sformatować, jak chcesz, używając PHP lub używając 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. Klucz obcy MySQL InnoDB między różnymi bazami danych

  2. Błąd składni MySQL podczas wykonywania zapytania SQL

  3. Używanie PHP i MySQL do wypełniania listy rozwijanej

  4. PHP mysql do wykonania zadania po 30 sekundach

  5. asp.net / MySQL:Odmowa dostępu dla użytkownika ''@'localhost' (przy użyciu hasła:NIE)