2011-01-16 25 views
19

Ich muss einen Varchar-Wert von 1/9/2011 in ein Datum in mySQL konvertieren und ich möchte nur den Monat und das Jahr. Damit kann ich dann die PERIOD_DIFF Funktion nutzen (also müsste ich das obige in 201101 umwandeln).mySQL konvertieren varchar nach Datum

Ich habe verschiedene Möglichkeiten, mit der STR_TO_DATE Funktion versucht:

SELECT STR_TO_DATE(CYOApp_oilChangedDate, '%m/%Y') FROM CYO_AppInfo 

Aber ich seltsame Ergebnisse zu erhalten ... (zum Beispiel: 2009-01-00)

Was ich falsch mache?

Antwort

60
select date_format(str_to_date('31/12/2010', '%d/%m/%Y'), '%Y%m'); 

oder

select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m'); 

schwer von Ihrem Beispiel zu sagen

+0

Ihr zweites Beispiel arbeitete für meine Bedürfnisse. Danke! – webdad3

1

Als Dank an die rechtzeitige Hilfe, die ich von hier bekam - ein kleines Update zu oben.

$query = "UPDATE `db`.`table` SET `fieldname`= str_to_date( fieldname, '%d/%m/%Y')";