Skip to main content

Brasil

Announcements
QlikWorld 2023, a live, in-person thrill ride. Save $300 before February 6: REGISTER NOW!
cancel
Showing results for 
Search instead for 
Did you mean: 
cenbueno
Contributor II
Contributor II

Conversão de horário

Bom dia Pessoal, segue uma dúvida.

Tem um campo Data no formato Timestamp, DD/MM/YYYY hh:mm:ss

Preciso que essa data seja convertida pra que o dia inicie na hora 00:05 (meia noite e 5) e não meia noite de cada mês.

Exemplo: quando for 01/11/2015 00:00:00, ele não considere esse dado quando eu selecionar o mês de novembro e sim quando selecionar outubro;

Abs

1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Eu trabalharia com outra data "paralela" com 5 minutos de diferença.

Algo como

t:

LOAD

  Data,

  TimeStamp(Data - 5/(24*60)) as DataAjustada

resident t1;

drop Table t1;

View solution in original post

7 Replies
Clever_Anjos
Employee
Employee

Eu trabalharia com outra data "paralela" com 5 minutos de diferença.

Algo como

t:

LOAD

  Data,

  TimeStamp(Data - 5/(24*60)) as DataAjustada

resident t1;

drop Table t1;

cenbueno
Contributor II
Contributor II
Author

Clever segue o problema mais detalhado vamos dizer.

eu tenho a data TimeStamp, porém preciso fazer cálculo do horário de verão pra bater o tempo com o sistema interno, e fiz isso.

SET GMTShift = gmt() - ConvertToLocalTime(UTC(), 'GMT+03:00');

Esse ponto funcionou bem, consegui trazer os mesmo dados do sistema dele, a unica pendência é esses 5 minutos que não to conseguindo fazer.

Os campos criados de tempo seguem abaixo:

MakeDate(Year((Data + Num($(GMTShift)))), Month((Data + Num($(GMTShift)))), Day((Data + Num($(GMTShift))))) as Data,        

     Year((Data + Num($(GMTShift)))) as Ano,

     Month((Data + Num($(GMTShift)))) as Mes,

     MonthName((Data + Num($(GMTShift)))) as MesAno,

     Day((Data + Num($(GMTShift)))) as Dia,

     Time#(time(Data + Num($(GMTShift)),'hh:mm:ss')) as HoraQ,

     Time#(time(Floor((time(Data + Num($(GMTShift)),'hh:mm:ss')),1/(24*4)))) as Hora15,

     Date#(Time((Data + Num($(GMTShift)))), 'hh:mm:ss') as HoraQNum,

     Hour((Data + Num($(GMTShift)))) as Hora,    

Agora preciso fazer com que toda virada de mês de 31 pra 01, a 00:00:00 fique pertencendo ao dia 31 e dia 01 conte a partir da 00:05:00.

nicolett_yuri

Acredito que um IF pode resolver a sua vida, consegue postar um qvw de exemplo?

cenbueno
Contributor II
Contributor II
Author

Anexei o arquivo de modelo do que preciso Yuri. De uma olhada.

lucianosv
Specialist
Specialist

Bom dia.

Se você colocar os cinco minutos no GMTShift é provável que já funcione.

=$(GMTShift)  - 5/(24*60)

Esse desconto têm que ficar em todos os campos do calendário.

lucianosv
Specialist
Specialist

Dá uma olhada no teste com inline para a data '15/02/2016 00:04:01'.

O dia retornou 14.

cenbueno
Contributor II
Contributor II
Author

Deu certo desse jeito, o Clever já tinha postado acima e fiz o teste e funcionou.

Agora através do tempo que esta no script do qvw em anexo, preciso criar um campo que retorne 4 intervalos(15 min, 30, 45 e 60) de cada hora.