Aquí está la solución para el VARCHAR a DATETIME (esto erease el valor actual):
ALTER TABLE mytable modify column `mycolumn` datetime NOT NULL DEFAULT 0;
UPDATE mytable SET mycolumn = NOW() WHERE ...;
o
UPDATE mytable SET mycolumn = '2011-09-25 17:40:00' WHERE ...;
Si desea guardar el valor actual uso:
ALTER TABLE mytable add column `newdate` datetime NOT NULL DEFAULT 0;
UPDATE mytable SET newdate = mycolumn;
ALTER TABLE mytable DROP COLUMN mycolumn;
Si desea seleccionar la fecha en el formato que puede:
SELECT DATE_FORMAT(mycolumn, '%m/%e/%y %h:%i %p') FROM mytable WHERE ...
O en su PHP que puede utilizar:
date_default_timezone_set('America/Los_Angeles');
// query select ($row = mysql_fetch_assoc($query)...
$date = $date = date("m/d/y g:i A", strtotime($row['mycolumn']));
varchar (20) es la definición – Erik
Pongo No se recomienda utilizar varchar como fecha, usar marca de tiempo o fecha y hora, luego puede formatear la fecha de mysql usando: DATE_FORMAT() –
bien, pero ¿cómo puedo cambiar los registros existentes? – Erik