Convertir numeric a smalldate

19/07/2006 - 18:55 por Bernardo | Informe spam
Hola amigos :

Tengo un campo numeric del tipo '20070719', donde esto, indica que es la
fecha 19-07-2007. como poder hacer para que se convierta a tipo SamllDate
???.. me comentaron de la funcion CONVERT, como o puedo usar ???. o ustedes
me recomiendan otro metodo ???..

De antemano, muchas gracias...

Preguntas similare

Leer las respuestas

#11 Dario R. Ayala
19/07/2006 - 23:03 | Informe spam
Lo mas sencillo sería con un filtro: WHERE FMNACIprocesado.v6_01_05_00 > 0

Dario R. Ayala

Microsoft DCE 2005 2E - DCE 3E



Bernardo wrote:
Tienen razon ustedes, existen campos con valor '0', estos no deberian
convertirse, como poder solucionarlo ???.

Respuesta Responder a este mensaje
#12 Bernardo
19/07/2006 - 23:12 | Informe spam
Disculpa mi ignorancia, pero el WHERE no me devolveria solamente los
registros que fueran mayor que '0' ???.. yo pensaba en un IF, se puede
???... lo que pasa es que necesito todos los registros, pero los con valor 0,
que signa en 0.
Respuesta Responder a este mensaje
#13 Dario R. Ayala
19/07/2006 - 23:28 | Informe spam
En ese caso prodrías usar un CASE, pero hay un problema, el resultado de
esa columna es del tipo DATETIME por lo que vas a tener un error de
todas formas si devolves 0, una alternativa es que, si te lo permite el
modelo de tu base, devolver un valor NULL, o una fecha que sepas que es
invalida (ej 31/12/9999), la consulta sería algo asi:

select
case dbo.FMNACIprocesado.v6_01_05_00
when 0 then NULL --(o la fecha fija)
else CAST(LTRIM(dbo.FMNACIprocesado.v6_01_05_00) AS datetime) end
from miTabla


Dario R. Ayala

Microsoft DCE 2005 2E - DCE 3E



Bernardo wrote:
Disculpa mi ignorancia, pero el WHERE no me devolveria solamente los
registros que fueran mayor que '0' ???.. yo pensaba en un IF, se puede
???... lo que pasa es que necesito todos los registros, pero los con valor 0,
que signa en 0.

Respuesta Responder a este mensaje
#14 Dario R. Ayala
19/07/2006 - 23:35 | Informe spam
Me autocorrijo el mail anterior. Podrías hacer la consulta de la
siguiente forma:

select case dbo.FMNACIprocesado.v6_01_05_00
when 0 then 0
else CAST(LTRIM(dbo.FMNACIprocesado.v6_01_05_00) AS datetime) end
from miTabla

Y cuando encuentre 0 en la tabla va a devolver 1900-01-01 00:00:00.000
Perdón por la confusión, salu2

Dario R. Ayala

Microsoft DCE 2005 2E - DCE 3E



Dario R. Ayala wrote:
En ese caso prodrías usar un CASE, pero hay un problema, el resultado
de esa columna es del tipo DATETIME por lo que vas a tener un error de
todas formas si devolves 0, una alternativa es que, si te lo permite
el modelo de tu base, devolver un valor NULL, o una fecha que sepas
que es invalida (ej 31/12/9999), la consulta sería algo asi:

select case dbo.FMNACIprocesado.v6_01_05_00
when 0 then NULL --(o la fecha fija)
else CAST(LTRIM(dbo.FMNACIprocesado.v6_01_05_00) AS datetime) end
from miTabla


Dario R. Ayala

Microsoft DCE 2005 2E - DCE 3E



Bernardo wrote:
Disculpa mi ignorancia, pero el WHERE no me devolveria solamente los
registros que fueran mayor que '0' ???.. yo pensaba en un IF, se
puede ???... lo que pasa es que necesito todos los registros, pero
los con valor 0, que signa en 0.

Respuesta Responder a este mensaje
#15 Bernardo
20/07/2006 - 19:06 | Informe spam
Muchas gracias Dario por tu ayuda ya solucione el problema, disculpa mis
ignorancias relativas al SQL, pero soy un principiante en esto...
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida