Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/03/2011, 08:03
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Exclamación Respuesta: Problemas para convertir campo varchar(50) a datetime

Hola fernan2010:

El ejemplo funciona correctamente pasa la fecha que pones de ejemplo ('16/11/2011 13:25')

Si al aplicarlo a tu consulta sigue marcando un error de conversión esto puede ser porque alguno de tus registros no tiene el formato que mencionaste al inicio. Igual y sería conveniente que primero verificaras con la función ISDATE si existe algún registro con la fecha o la hora no válidas, para corregir los registros o en su defecto excluirlos de la conversión. Puedes hacerlo más o menos así:

Código SQL:
Ver original
  1. SET LANGUAGE spanish
  2. DECLARE @fechas TABLE (fecha VARCHAR(50))
  3. INSERT INTO @fechas VALUES ('16/11/2011 13:25') --fecha valida y hora valida
  4. INSERT INTO @fechas VALUES ('29/02/2011 13:25') --fecha no valida y hora valida
  5. INSERT INTO @fechas VALUES ('28/02/2011 25:25') --fecha valida y hora no válida
  6. INSERT INTO @fechas VALUES ('30/02/2011 25:25') --fecha no valida y hora no válida
  7. SELECT fecha,
  8. isdate(SUBSTRING(fecha, 1, 10)) fecha_valida,
  9. isdate(SUBSTRING(fecha, 12, 5)) hora_valida FROM @fechas

al inicio especifico que el lenguaje por defecto en español, para que reconozca el formato de fecha dd/mm/yyyy. El resultado de esta consulta es el siguiente:

Código:
fecha|fecha_valida|hora_valida
------------------------------------------
16/11/2011 13:25|1|1
29/02/2011 13:25|0|1
28/02/2011 25:25|1|0
30/02/2011 25:25|0|0
Con respecto a tu pregunta, si es posible hacer la conversión y copiar el resultado en una nueva columna, pero para poder aplicarlo a todos los registros es necesario que TODOS LOS REGISTROS tengan fechas válidas.

Saludos y espero que te sea de ayuda el código.
Leo.