Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Posting on Qlik Community is temporarily paused for some users. Thank you for patience and we'll update you soon!
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
Joaquin_Lazaro
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,

Joaquin_Lazaro
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.

Joaquin_Lazaro
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