2016-07-27 6 views
0

Ich weiß, wie STR_TO_DATE (str, fmt); wird das Format einer bestimmten Zeichenkette ändern, aber wenn ich eine Spalte aller verschiedenen Daten in einem Textformat habe (z. B. 1/11/2016, 25.01.2016, 27.06.2015 ...), wie kann ich das tun? alle Daten in der Spalte in das DATE-Format konvertieren? Von allem, was ich lese, scheint es, dass Sie den genauen Wert angeben müssen, der jedes Mal konvertiert werden muss.Alle Werte in einer Spalte konvertieren Von VARCHAR zu DATE in MySQL

+1

so? 'str_to_date (deinFeld,% d /% m /% Y '), fertig. Sie können Felder in einem Datensatz als Teil der Aktualisierungsabfrage verwenden, z. 'update foo set bar = bar + 1' ist völlig legitim/gültig. –

+0

Sie haben recht - ich bekam "NULL" beim Testen, aber es funktioniert: 'update pp_drops_dev gesetzt Create_Date = str_to_date (Create_Date, '% d /% m /% Y')' –

Antwort

0

Sie können mehrere ifnull Funktion für diese verwenden.

select ifnull(STR_TO_DATE(a,'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) from [YourTable]; 

update [YourTable] set timestamp=ifnull(STR_TO_DATE([Colum],'%Y-%m-%d'),sTR_TO_DATE(a,'%Y-%d-%m')) ; 

Ich hoffe, dies hilft.

0

Dank Mark B.

str_to_date (yourfield '% d /% m /% Y'), durchgeführt. Sie können Felder in einem Datensatz als Teil der Aktualisierungsabfrage verwenden, z. update foo set bar = bar + 1 ist völlig legitim/gültig.

So habe ich:

update [My_Table] 
set Create_Date = str_to_date(Create_Date, '%d/%m/%Y')