2011-09-25 11 views
5

Tengo un mySQL con una tabla. Hay 30 registros, todos con una columna de fecha.Establecer el formato de fecha con los registros existentes php mySQL. ¿Cómo?

¿Cómo cambio todos mis registros existentes en mi tabla para tener la fecha de hoy con el formato es?

date_default_timezone_set('America/Los_Angeles'); 
$date = date("m/d/y g:i A") ; 
+0

varchar (20) es la definición – Erik

+2

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() –

+0

bien, pero ¿cómo puedo cambiar los registros existentes? – Erik

Respuesta

7

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'])); 
Cuestiones relacionadas