Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
luis_bisval
Contributor III
Contributor III

Convertir hora formato string a Time

Buenas tardes.

Estimados, sigo trabajando en mi app de control de asistencia, con la siguiente información.

Cédula

Fecha

H_Entrada

H_Salida

Total de Horas

15664062

2016-04-25

07:03:49

18:50:01

11:46:12

15664062

2016-04-26

13:29:05

17:56:43

04:27:38

15664062

2016-04-27

07:14:01

17:46:24

10:32:23

16429625

2016-04-26

07:10:51

17:35:31

10:24:40

16429625

2016-04-27

07:16:08

17:04:14

09:48:06

18096033

2016-04-25

06:04:20

16:50:55

10:46:35

18096033

2016-04-26

06:04:04

16:49:35

10:45:31

18096033

2016-04-27

05:53:17

15:35:21

09:42:04

El resultado del campo "Total de Horas" lo obtengo de la siguiente expresión Interval(H_Salida-H_Entrada), sin embargo el resultado es en formato "visual" de horas pero a nivel de datos es string: ¿Como hago para que ese resultado tenga el formato Time?

Lo necesito en formato Time ya que estoy creando un gráfico con una expresión de Cumplimiento de la siguiente manera:

Aggr(sum(If([Total de Horas] >='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)


También lo coloque de la siguiente forma:


Aggr(sum(If([Total de Horas] >=MakeTime(9,45) and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)

Sin embargo no obtengo ningún resultado.

Agradezco de antemano su colaboración

1 Solution

Accepted Solutions
sorrakis01
Specialist
Specialist

Hola Luis,

En principio te tendría que funcionar tal y como tienes los datos y si quieres con la primera expresión:

Aggr(sum(If([Total de Horas] >='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)


Te subo un ejemplo:



View solution in original post

15 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Luis:

TIME#(TuExpresion, 'HH:MM:SS')

Saludos

Joaquín

sorrakis01
Specialist
Specialist

Hola Luis,

En principio te tendría que funcionar tal y como tienes los datos y si quieres con la primera expresión:

Aggr(sum(If([Total de Horas] >='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)


Te subo un ejemplo:



luis_bisval
Contributor III
Contributor III
Author

Buenos días

Hola joaquinlr, ya habia utilizado tu expresión y no me funcionó, pero igual muchas gracias

luis_bisval
Contributor III
Contributor III
Author

Hola Jordi, utilice la expresión que tienes en el archivo qvd que me enviaste y si funciona,

De esta forma funciona: Aggr(sum(If((H_Salida-H_Entrada)>='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)

Pero de esta forma no me funciona: Aggr(sum(If([Total de Horas] >='09:45' and H_Entrada<=MakeTime(8) and H_Salida>=MakeTime(17),1,0)),Mes)



Muchas gracias nuevamente.

sorrakis01
Specialist
Specialist

Hola,


Si lo creeas en el script pon:

Timestamp(Timestamp(H_Salida,'hh:mm:ss')-Timestamp(H_Entrada,'hh:mm:ss'),'hh:mm:ss') as Total_de_Horas

Saludos,

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Luis:

Perfecto si lo has resuelto.

Por si tienes otro caso parecido o solo por curiosidad, prueba esto

MAKETIME(Hour(Time#(TuExpresion, 'HH:MM:SS')), Minute(Time#(TuExpresion, 'HH:MM:SS')), Second(Time#(TuExpresion, 'HH:MM:SS'))) as HHMMSS


Saludos

Joaquín

luis_bisval
Contributor III
Contributor III
Author

Ok, dentro del script de seguro funcionaría, lo intente hacer pero tengo una conexión OLDB a Sql Server y no interpreta ese comando.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Luis, no va en la SELECT sino en el load

LOAD ...

          MakeTime() as TuHHMMSS

SQL SELECT  ....

Si te interesa copia un trozo del load y te lo ajusto !!!!

Saludos

Joaquín

luis_bisval
Contributor III
Contributor III
Author

Hola joaquinlr, este es mi script