Foros del Web » Programando para Internet » PHP »

Cambiar formato VarChar a Date

Estas en el tema de Cambiar formato VarChar a Date en el foro de PHP en Foros del Web. saludos tengo asignados varios campos que estan en formato VARCHAR en los cuales manejo la fecha con el formato dd-mm-aa pero son de tipo VARCHAR ...
  #1 (permalink)  
Antiguo 13/03/2004, 08:52
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
Cambiar formato VarChar a Date

saludos

tengo asignados varios campos que estan en formato VARCHAR en los cuales manejo la fecha con el formato dd-mm-aa pero son de tipo VARCHAR los quiero pasar al formato DATE

__________________
rocita
  #2 (permalink)  
Antiguo 13/03/2004, 09:08
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Solo cambia el tipo de dato en la BD...sencillo hasta donde se....al menos que lo hayas tratado y te haya dado problemas

...si te dio problemas exponlo aqui.

Saludos
__________________
www.dataautos.com
  #3 (permalink)  
Antiguo 13/03/2004, 09:21
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
no se puede por q el campo date maneja la fecha aaaa-mm-dd
__________________
rocita
  #4 (permalink)  
Antiguo 13/03/2004, 13:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 272
Antigüedad: 20 años, 7 meses
Puntos: 0
Muy simple
Ahi una funcion en php que inverte una cadena, tonces lo unico que haces es invertir la cadena que tenes del tipo carchar osea darla vuelta y te queda del tipo date para la base de datos.

y la funcio que te solucinara la vida es

$aa_mm_dd = strrev($dd_mm_aa);

y listo en la variable $aa_mm_dd obtenes el resultado esperado.

por ejemplo

$aa_mm_dd = strrev(13-03-2004)
luego echo($aa_mm_dd ) imprime 2004-03-13 es igual de simple como lo pensarias vos por que no leer de atras para adelante????????????? y listo.
Saludos.
Despues contame si te funciono ya que no lo probe pero creo que te va a andar bien.
bye
  #5 (permalink)  
Antiguo 15/03/2004, 09:39
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 20 años, 6 meses
Puntos: 0
gracias phpnet

una consulta más ... una vez que tengo mi fecha con formato DATETIME como muestro solo la fecha sin poner la hora.

Saludos
__________________
rocita
  #6 (permalink)  
Antiguo 15/03/2004, 11:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Con SQL de msyql .. función:

DATE_FORMAT() ..

Revisa el manual oficial de Msyql:
www.mysql.com

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 16/03/2004, 17:20
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
no me devuelve bien el orden...

Hola .... el caso es que estuve testeando esta funcion pero me devuelve mal el orden....

le llega la variable fecha en mi caso:

$GET_['fecha'];
$aa_mm_dd = strrev($fecha);

y cuando hago:

<? echo $aa_mm_dd; ?> me devuelve: 4002-30-51

alguien tiene alguna idea de por que no termina de girar la fecha correctamente??

gracias.
  #8 (permalink)  
Antiguo 16/03/2004, 19:05
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
es normal, el campo date, da siempre este formato ,AÑO, MES ,DIA,
debes utilizar la funcis SQL DATE_FORMAT para que te salga la fecha formateada

$sql = "SELECT DATE_FORMAT(fecha, '%d-%m-%Y') as fecha , campo, campo , ..... FROM tabla_datos, WHERE LO QUE SEA ";

Cluster ya te comentaba eso, y te daba la URL del manual de MYSQL, yo te lo afino mas y te doy la URL de las funciones de fecha

http://www.mysql.com/doc/en/Date_and...functions.html

Espero que te sirva

Salduos
  #9 (permalink)  
Antiguo 16/03/2004, 20:36
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
date_format sigue sin funcionar...

este es el codigo que use para provar este tipo de select y en mi BD tengo insertados datos con esta misma fecha pero no me muestra ninguno :

$fecha='16-03-2004';
mysql_select_db($database_conectar, $conectar);
$query = "SELECT DATE_FORMAT(fecha, '%d-%m-%Y') AS dato , titulo, comentario, imagen, orden, lugar FROM galeria WHERE fecha ='$fecha'";

Te agradeceria mucho cualquier idea que me puedas dar ya que no tengo ni idea de donde puede estar el fallo por mas de que le de 1000 vueltas...

gracias.
  #10 (permalink)  
Antiguo 17/03/2004, 04:12
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
esque tienes de darle el formato de fecha que reconoce mysql

tu tienes
$fecha='16-03-2004';
mysql_select_db($database_conectar, $conectar);
$query = "SELECT DATE_FORMAT(fecha, '%d-%m-%Y') AS dato , titulo, comentario, imagen, orden, lugar FROM galeria WHERE fecha ='$fecha'";

y deberia ser

$fecha='2004-03-16';
mysql_select_db($database_conectar, $conectar);
$query = "SELECT DATE_FORMAT(fecha, '%d-%m-%Y') AS dato , titulo, comentario, imagen, orden, lugar FROM galeria WHERE fecha ='$fecha'";

un saludo
  #11 (permalink)  
Antiguo 17/03/2004, 07:06
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
no me explique bien, por lo de la fecha...

Hola.....
me parece que no me explique muy bien, en cuanto a la fecha.
Esta fecha la recibo desde un formulario y ya biene girada en español porque se muestran dinamiocamente en una lista/menu desplegable, y lo que necesito es volverla a girar para hacer la consulta osea:

recivo esta variable :
$fecha='16-03-2004';
y aqui necesito girarla antes de la select para que el php me pinte
todos los registros referentes a esta fecha
mysql_select_db($database_conectar, $conectar);
$query = "SELECT titulo, comentario, imagen, orden, lugar FROM galeria WHERE fecha ='$fecha'and lugar='$lugar'";



gracias por contestar
  #12 (permalink)  
Antiguo 17/03/2004, 09:55
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
para girarla puedes hacerlo asi

$ArrayFecha =explode('-', $fecha);

$fecha = $ArrayFecha[2] .'-'.$ArrayFecha[1] .'-'.$ArrayFecha[0] ;

Saludos
  #13 (permalink)  
Antiguo 17/03/2004, 10:24
Avatar de midpunto  
Fecha de Ingreso: enero-2004
Ubicación: España Palma de mallorca
Mensajes: 118
Antigüedad: 20 años, 3 meses
Puntos: 0
De acuerdo Excelente!!!

Muchas gracias señor!! funciona a la perfeccion...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:16.