Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Validar un valor

Estas en el tema de Validar un valor en el foro de SQL Server en Foros del Web. Hola a todos tengo un gran problema.... tengo una tabla que tiene un campo fecha, pero este campo no fue definido como datetime, sino que ...
  #1 (permalink)  
Antiguo 06/02/2006, 10:09
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
Validar un valor

Hola a todos tengo un gran problema....
tengo una tabla que tiene un campo fecha, pero este campo no fue definido como datetime, sino que fue definido como varchar.
Me pregunte el porque lo hacian asi y era porque se carga en base a unos archivos del cliente y el cliente en ese campo coloca cualquier cosa.

Ahora mi problema es el siguiente:
-quiero convertir el campo a datetime
-actualmente hay datos en el siguiente formato: dd/mm/aaaa pero lo malo que hay datos textos como 'hola'
entonces cuando hago un
select convert(datetime,fecha) from tabla se me cae por culpa de ese hola o de todo los datos que no sean fecha,
entonces me queda la curiosidad si puedo controlar el error, osea algo como si el convert da error, entonces que retorne 0 (cero)

Alguien me ayuda?
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #2 (permalink)  
Antiguo 07/02/2006, 16:48
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
IsDate te ayudará en este caso:

SELECT
IsDate(getdate()) as valido,
IsDate('cosa') AS invalido
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 08/02/2006, 11:49
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
no conocia esa funcion, gracias me servira para mucho...
ahora me queda una duda.

como dije tengo datos que fueron mal ingresados por una carga y no solo coloca fecha sino q en ocasiones coloca cualquier cosas,

un ejemplo es el siguiente:
select
IsDate('28/10/1005') AS valor1,
IsDate('nada') AS valor2
from tabla1

ambos me devuelven 0, como hago el converte de esa fecha porque me tinca que me muestra 0 por el formato en cual sale.
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
  #4 (permalink)  
Antiguo 08/02/2006, 15:32
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
smalldatetime
Date and time data from January 1, 1900, through June 6, 2079

datetime
Date and time data from January 1, 1753 through December 31, 9999

El año 1005 no esta dentro del rango válido para ninguno de los 2 tipos de fecha que soporta SQL Server. Si quieres aceptar esa fecha como una fecha válida tendrías que hacer tu propia función de validación de fechas (y no usar jamás los tipos de datos de fecha)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 10/02/2006, 06:12
Avatar de bhonox  
Fecha de Ingreso: julio-2002
Ubicación: Rengo-Viña del Mar-Stgo
Mensajes: 1.213
Antigüedad: 21 años, 9 meses
Puntos: 0
ok gracias men!!
funca ahora correctamente
__________________
Atte
Real BHONOX

Programador Cervecero! :borracho:
Lenguajes vengan a MI!!
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 16:12.