Conversion de tipo char a datetime

05/04/2006 - 13:46 por Claudio | Informe spam
Hola

Tengo un problema al convertir un tipo char a un tipo datetime. Uso el
CONVERT(varchar(20),"micampo",103) para cambiar una cadena que me viene en
una tabla no propia a un campo fecha en mi tabla. El tema es que el sql me
tira un error de que no lo puede hacer. Al consultar el help , ahi dice que
la precedencia de tipos es mayor la del datetime que la de char o varchar,
por lo tanto "El tipo de datos con menor precedencia se convierte al tipo de
datos con mayor precedencia", pero a mi me sigue tirando el siguiente error
:
"La conversión del tipo de datos char a datetime produjo un valor datetime
fuera de intervalo.
Se terminó la instrucción." , lo extraño es que la forma en que viene el
string es "dd/mm/yyyy".

En algo me estoy equivocando, pero no se en que. Alguna sugerencia??
Muchas gracias
Claudio
 

Leer las respuestas

#1 Alejandro Mesa
05/04/2006 - 14:53 | Informe spam
Claudio,

Si el valor tiene formato "dd/mm/yyyy" entonces te surgiero lo transformes
antes de convertirlo a fecha. Usa el formato yyyymmdd que siempre sera
interpretado correctamente como fecha por sql server independiente del
lenguaje o setting de "dateformat".

declare @s varchar(10)

set @s = '05/04/2006'

select cast(right(@s, 4) + substring(@s, 3, 2) + left(@s, 2) as datetime)
go

AMB

"Claudio" wrote:

Hola

Tengo un problema al convertir un tipo char a un tipo datetime. Uso el
CONVERT(varchar(20),"micampo",103) para cambiar una cadena que me viene en
una tabla no propia a un campo fecha en mi tabla. El tema es que el sql me
tira un error de que no lo puede hacer. Al consultar el help , ahi dice que
la precedencia de tipos es mayor la del datetime que la de char o varchar,
por lo tanto "El tipo de datos con menor precedencia se convierte al tipo de
datos con mayor precedencia", pero a mi me sigue tirando el siguiente error
:
"La conversión del tipo de datos char a datetime produjo un valor datetime
fuera de intervalo.
Se terminó la instrucción." , lo extraño es que la forma en que viene el
string es "dd/mm/yyyy".

En algo me estoy equivocando, pero no se en que. Alguna sugerencia??
Muchas gracias
Claudio



Preguntas similares