cancel
Showing results for 
Search instead for 
Did you mean: 

convertir campo hora

former_member263548
Participant
0 Kudos

Hola expertos, estoy tratando de convertir un campo de "Hora" pero me muestra un error: Conversion failed when converting date and/or time from character string

SELECT

case len (t0.createtime)

when 3 then convert(time,substring(convert(nvarchar,t0.createtime),1,1)

+':'+ substring(convert(nvarchar,t0.createtime),2,2))

when 4 then convert(time,substring(convert(nvarchar,t0.createtime),1,1)

+':'+ substring(convert(nvarchar,t0.createtime),2,2))

end

FROM OSCL T0

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Oscar,

Intenta con esto:


SELECT

convert(time,left(right('0000' + createtime, 4), 2) + ':' + right(right('0000' + createtime, 4), 2)) [Hora]

FROM OSCL T0

Saludos y suerte,

JC.

former_member263548
Participant
0 Kudos

Hola Juan Carlos, intenté pero me muestra el siguiente error:

1). [Microsoft][SQL Server Native Client 10.0][SQL Server]El identificador formado por varias partes "t0.createtime" no se pudo enlazar. 2). [Microsoft][SQL Server Native Client 10.0][SQL Server]No se puede preparar la instrucción o instrucciones.  '' (SWEI)

Former Member
0 Kudos

Lo probé en mi SQL y me da el resultado en forma de hora.

Ejecutaste el query tal como te lo puse? Dejaste el alias T0 enseguida del nombre de la tabla (OSCL)??

O le estás agregando JOINs o algo por el estilo?

former_member263548
Participant
0 Kudos

copio y pego

SELECT 

convert(time,left(right('0000' + createtime, 4), 2) + ':' + right(right('0000' + createtime, 4), 2)) [Hora] 

FROM OSCL T0 

pero me muestra el siguiente mensaje estimado:

1). [Microsoft][SQL Server Native Client 10.0][SQL Server]Debe especificar la tabla en la que hacer la selección. 2). [Microsoft][SQL Server Native Client 10.0][SQL Server]No se puede preparar la instrucción o instrucciones.  'Alertas recibidas' (OAIB)

former_member263548
Participant
0 Kudos

lo ejecuté en SQL y si funciona, pero cuando lo hago desde el generador de consultas es donde me muestra el error...

Former Member
0 Kudos

Inténtalo nuevamente en SAP B1, a lo mejor por algún motivo no se copió T0 (la parte final). O ejecútalo sin el alias en la columna, es decir, elimina todos los T0 que veas y así ejecútalo...

Saludos,

JC.

former_member263548
Participant
0 Kudos

No me funciono,  con y sin el T0, me indica que debo especificar la tabla en la que hacer la selección

gerardo_mendez
Active Contributor
0 Kudos

Hola Oscar, yo tengo algo similar en Crystal Reports para mostrar la hora en formato hora. Igual de aquí sacas una idea:

If Len(cstr({OPDN.U_HoraPesoBruto},'#')) = 4 Then

    left(cstr({OPDN.U_HoraPesoBruto},'#'),2) + ":" + Right(cstr({OPDN.U_HoraPesoBruto},'#'),2) + ' Hrs'

else

    left(cstr({OPDN.U_HoraPesoBruto},'#'),1) + ":" + Right(cstr({OPDN.U_HoraPesoBruto},'#'),2) + ' Hrs'

Suerte.