Ver Mensaje Individual
  #12 (permalink)  
Antiguo 26/05/2009, 06:48
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Fecha desde campo Varchar a campo datetime con insert

Lo que puede que esté resultando mal es que el formato de conversión se refiere no a como tiene que quedar sino a cómo está entrando.
Sea el caso :
Si el formato de entrada es "dd/mm/yyyy HH:MM:ss", entonces lo que hay que indicar es que ese es el formato de ingreso:
Código sql:
Ver original
  1. SELECT STR_TO_DATE('20/02/2001 19:00:00','%d/%m/%Y %T') FECHA;
En el caso en que las horas lleguen sin segundos:
Código sql:
Ver original
  1. SELECT STR_TO_DATE('20/02/2001 19:20','%d/%m/%Y %H:%i') FECHA;

En ningún caso se debe olvidar poner los caracteres y/o espacios que separan los números, porque sino devolverá NULL.

Entonces, si el valor está entrando así:
Cita:
'20/02/2001 19:20:00'
Se debe poner:
Código sql:
Ver original
  1. INSERT INTO TblNueva (CAMPOFECHA2) SELECT (STR_TO_DATE(CAMPOFECHA1, '%d/%m/%Y %H:%i:%s') )
  2. FROM TblVieja;

No perder de perspectiva que lo que hace STR_TO_DATE() es devolver un DATETIME no una cadena, en formato de 8 bytes, por lo que se manipula a partir de allí como un valor DATETIME común...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)