Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos,
Necesitaría convertir un campo que me traigo de una base de datos en formato hora, los datos de ese campo vienen de esta manera (0,15,130,2215,174020) .
0= 00:00:00
15= 00:00:15
130= 00:01:30
2215= 00:22:15
174020= 17:40:20
Teneis alguna idea de como podría convertir este campo en formato fecha dentro del Script?
Muchas gracias
Saludos
Hola José María:
Disculpa el paréntesis del TIME# estaba mal ubicado
Hora:
LOAD Len(EGRGTM) as Tamaño,
If (Len(EGRGTM) = 1, Time(Time#(EGRGTM, 's')),
If (Len(EGRGTM) = 2, Time(Time#(EGRGTM, 'ss')),
If (Len(EGRGTM) = 3, Time(Time#(EGRGTM, 'mss')),
If (Len(EGRGTM) = 4, Time(Time#(EGRGTM, 'mmss')),
If (Len(EGRGTM) = 5, Time(Time#(EGRGTM, 'hmmss')),
If (Len(EGRGTM) = 6, Time(Time#(EGRGTM, 'hhmmss'))))))))as Formato_Hora;
LOAD * INLINE [
EGRGTM
0
15
130
2215
174020
];
Saludos
Joaquín
Hola José María:
Yo veo una posibilidad con un poco de trabajo, te pongo la idea y tú la desarrollas
Se trata de identificar el tamaño de la cadena con esta función Len(TuHora)
If (Len(TuHora) = 1, Time(Time#(TuHora), 's'),
If (Len(TuHora) = 2, Time(Time#(TuHora), 'ss'),
If (Len(TuHora) = 3, Time(Time#(TuHora), 'mss'),
....
))) as TuHoraEditada
La función Time# comprueba que tu valor sea correcto según el formato, la función Time lo convierte en formato hora
Disculpa si me he dejado algún paréntesis
Saludos
Joaquín
Hola Joaquin,
Gracias por la contestación, pero no se si estoy haciendo algo mal pero no me funciona,
If (Len(EGRGTM) = 1, Time(Time#(EGRGTM), 's'),
If (Len(EGRGTM) = 2, Time(Time#(EGRGTM), 'ss'),
If (Len(EGRGTM) = 3, Time(Time#(EGRGTM), 'mss'),
If (Len(EGRGTM) = 4, Time(Time#(EGRGTM), 'mmss'),
If (Len(EGRGTM) = 5, Time(Time#(EGRGTM), 'hmmss'),
If (Len(EGRGTM) = 6, Time(Time#(EGRGTM), 'hhmmss')))))))as Formato_Hora,
no me devuelve nada!
Gracias por todo
Hola Jose Maria:
Quizás una opción más sencilla es forzar a la longitud máxima de la cadena cargada añadiendo 0 a la izquierda y convertirla posteriormente a formato hora:
Time(Time#(Right('000000' & Hora,6),'hhmmss')) as NuevaHora
El resultado creo que ofrece los datos que necesitas dando formato hora al nuevo campo.
Espero que te sea útil.
Un saludo
Hola José María:
Disculpa el paréntesis del TIME# estaba mal ubicado
Hora:
LOAD Len(EGRGTM) as Tamaño,
If (Len(EGRGTM) = 1, Time(Time#(EGRGTM, 's')),
If (Len(EGRGTM) = 2, Time(Time#(EGRGTM, 'ss')),
If (Len(EGRGTM) = 3, Time(Time#(EGRGTM, 'mss')),
If (Len(EGRGTM) = 4, Time(Time#(EGRGTM, 'mmss')),
If (Len(EGRGTM) = 5, Time(Time#(EGRGTM, 'hmmss')),
If (Len(EGRGTM) = 6, Time(Time#(EGRGTM, 'hhmmss'))))))))as Formato_Hora;
LOAD * INLINE [
EGRGTM
0
15
130
2215
174020
];
Saludos
Joaquín
Gracias Joaquin,
Es lo que necesitaba.
Saludos
Gracias Santiago,
Tienes razón es una manera sencilla pero muy efectiva para poderlo solucionar.
muchas gracias por tu aportación.
Saludos
De nada, hasta la próxima