Como usar Cast en conversion de Varchar a DateTime

18/07/2006 - 22:44 por Firefox | Informe spam
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que Žpuede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.

Preguntas similare

Leer las respuestas

#1 J.A. García Barceló
18/07/2006 - 23:04 | Informe spam
Para hacer un cast a datetime, necesitas una fecha, no solo la hora. Aunque
la fecha no la necesites en tu aplicación, necesitas usar una (que puedes
luego ignorar perfectamente). Intenta hacer:

Select cast('2000-01-01 '+hora as datetime) from tabla_facturas


J.A. García Barceló
http://jagbarcelo.blogspot.com/


"Firefox" escribió en el mensaje
news:
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que ´puede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.
Respuesta Responder a este mensaje
#2 Firefox
18/07/2006 - 23:16 | Informe spam
Gracias pero cuando lo coloco de forma literal como me dices funciona
muy bien

como sigue -> select cast('2000-01-01 '+ '10:00' as datetime) from
tabla_facturas

pero cuando especifico el campo "hora" que es varchar(10) y tiene
'10:00' por ejemplo

select cast('2000-01-01 '+ hora as datetime) from tabla_facturas

me dice lo siguiente:


"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo."

:(

J.A. García Barceló ha escrito:

Para hacer un cast a datetime, necesitas una fecha, no solo la hora. Aunque
la fecha no la necesites en tu aplicación, necesitas usar una (que puedes
luego ignorar perfectamente). Intenta hacer:

Select cast('2000-01-01 '+hora as datetime) from tabla_facturas


J.A. García Barceló
http://jagbarcelo.blogspot.com/


"Firefox" escribió en el mensaje
news:
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que Žpuede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.
Respuesta Responder a este mensaje
#3 J.A. García Barceló
18/07/2006 - 23:21 | Informe spam
Eso será porque alguno de los registros que ya tienes almacenados como
varchar(10) contienen una hora errónea, que no está en el rango 00:00 -
23:59

Busca algun registro del tipo 24:00 o que tenga caracteres alfanuméricos, o
mas de 23 en las horas o mas de 59 en los segundos. Corrige los datos y
vuelve a lanzar la consulta.



J.A. García Barceló
http://jagbarcelo.blogspot.com/

"Firefox" escribió en el mensaje
news:
Gracias pero cuando lo coloco de forma literal como me dices funciona
muy bien

como sigue -> select cast('2000-01-01 '+ '10:00' as datetime) from
tabla_facturas

pero cuando especifico el campo "hora" que es varchar(10) y tiene
'10:00' por ejemplo

select cast('2000-01-01 '+ hora as datetime) from tabla_facturas

me dice lo siguiente:


"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo."

:(

J.A. García Barceló ha escrito:

Para hacer un cast a datetime, necesitas una fecha, no solo la hora.
Aunque
la fecha no la necesites en tu aplicación, necesitas usar una (que puedes
luego ignorar perfectamente). Intenta hacer:

Select cast('2000-01-01 '+hora as datetime) from tabla_facturas


J.A. García Barceló
http://jagbarcelo.blogspot.com/


"Firefox" escribió en el mensaje
news:
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que ´puede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.
Respuesta Responder a este mensaje
#4 Firefox
18/07/2006 - 23:22 | Informe spam
Listo! el problema es que una de las horas tenia "24:34" error fatal de
mi parte no validar la entrada de datos.


(^ ^) Gracias por la valiosa ayuda!


J.A. García Barceló ha escrito:

Para hacer un cast a datetime, necesitas una fecha, no solo la hora. Aunque
la fecha no la necesites en tu aplicación, necesitas usar una (que puedes
luego ignorar perfectamente). Intenta hacer:

Select cast('2000-01-01 '+hora as datetime) from tabla_facturas


J.A. García Barceló
http://jagbarcelo.blogspot.com/


"Firefox" escribió en el mensaje
news:
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que Žpuede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.
Respuesta Responder a este mensaje
#5 Maxi
19/07/2006 - 14:40 | Informe spam
Hola, un detalle que no va a responder tu pregunta porque ya lo han hecho
:)
Los formatos no deberian ser una responsabilidad de la base de datos, de
esto se deberia encargar la capa de presentacion de tu aplicacion. Que
pasaria si otro cliente pide otro formato? vas a cambiar los Stores?



Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org
Speaker INETA
Speaker Culminis


"Firefox" escribió en el mensaje
news:
Hola!, tengo una linea que me esta presentando problemas de conversion
a ver si me pueden ayudar por favor. Tengo esto Select cast(hora as
datetime) from tabla_facturas.

O.K., el campo "hora" que es el que quiero convertir a DateTime es
Varchar y contiene valores como los siguientes "20:00" ó "13:00" ó
"19:00" que ´puede estar mal en esta conversion que me arroja el
siguiente mensaje de error:

"La conversión del tipo de datos char a datetime produjo un valor
datetime fuera de intervalo"

Mil Gracias a todos.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida