Convertir cadena string en fecha

Tengo un problema para poder sacar la fecha a este codigo, ya que se junta una fecha de inicio y una fecha final para formar el cod_cartera
select cod_cartera from cartera
resultado=TG1_180109RES120209200209
SELECT SUBSTRING (cod_cartera,14,6) from cartera
resultado=120209
SELECT SUBSTRING (cod_cartera,20,6) from cartera
resultado=200209
bueno con esta consulta solo estoy extrayendo, pero lo que quiero es convertirlo en fecha 12/02/09 , como podria hacerlo?? Alguien que me ayude!
1

1 Respuesta

54.500 pts. Consultor BI DBA SQL Analista Senior
A ver si te sirve esto:
Declare @date varchar(8)
set @date = '12022009'
select cast(substring(@date, 1, 2)+ '/'+ substring(@date, 3, 2)+ '/'+ substring(@date, 5, 4) as datetime)
Por eso, mira:
SELECT cast(SUBSTRING (cod_cartera,14,2)+ '/'+ (cod_cartera,16,2)+ '/'+ (cod_cartera,18,2) as datetime)
From cartera
Hola, probé pero el inconveniente es que quiero convertir toda una fila con códigos distintos, es decir con fechas distintasTG1_180109NPP120209200209
TG2_281208RES050209240209
TG1_180109RES120209200209
TG2_281208NPP050209240209
TG2_080109SP130209040309
TG2_281208SP050209240209
TG2_080109RES130209040309
y lo que yo he llegado hacer es extraer de esta manera
SELECT SUBSTRING (cod_cartera,14,6) from cartera
resultado=120209
SELECT SUBSTRING (cod_cartera,20,6) from cartera
resultado=200209
pero lo que quiero es esos datos que extraigo, convertirlos en fecha, como podria ahcerlo, gracias
Disculpa que sea tan insistente pero me sale este error
Línea 1: sintaxis incorrecta cerca de ','. Y ya verifique pero no encuentro el error : (
No te preocupes, mira prueba ahora, ya lo revise y probé
SELECT cast(SUBSTRING (cod_cartera,14,2)+ '/'+substring (cod_cartera,16,2)+ '/'+ substring(cod_cartera,18,2) as datetime)
From cartera
Me comentas como te va.
Una observación adicional, el tamaño de los valores de tu columna que genera las fechas no es uniforme, dale una revisada a eso también.
Hola, me sale este mensaje.
Servidor: mensaje 8115, nivel 16, estado 2, línea 1
Error de desbordamiento aritmético al convertir expression al tipo de datos datetime.
¿A qué se debe?
Es por lo que te comente, tu tienes lo siguiente:
1  TG1_180109NPP120209200209
2  TG2_281208RES050209240209
3  TG1_180109RES120209200209
4  TG2_281208NPP050209240209
5  TG2_080109SP130209040309
6  TG2_281208SP050209240209
7  TG2_080109RES130209040309
El tamaño de los datos no son iguales, el item 5 y 6 son más pequeños que los demás, y cuando hagas el substring sobre ellos tendrás algo así:
30/20/90
50/20/92
La consulta que te pasé funciona bien sin esos item, ya te di como puedes convertir de texto a datetime, ya en cuanto al contenido de tus datos no puedo ayudarte que eso corresponde a la lógica de negocio de tu empresa.
Si tienes razón menos mal que son pocos item, en realidad son muchísimos registros pero los registros que te mostré son totales. Gracias por la ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas