Página 1 de 1

Comparação Entre Datas e Horas

Enviado: 04 Mai 2021 às 13:58
por felipegare
Boa tarde, pessoal. Tudo bem?

Estou trabalhando em um novo projeto junto com o time de hardware e eles pediram alguns alertas para mim. Um deles é para notificar quando o dispositivo está offline

Para isso, eu preciso comparar a última data/horário que o dispositivo enviou mensagem com a data/horário atual

Para uma melhor compreensão, tenho um código em javascript aqui que pode ajudar:

VAR status = "-"
IF (lastUpdateMinutes <= 25){
status = "online"
}else if(lastUpdateMinutes > 25 && lastUpdateMinutes <= 60){
status = "atrasado"
}else if(lastUpdateMinutes > 60 && lastUpdateMinutes < 240){
status = "super atrasado"
}else if(lastUpdateMinutes > 241){
status = "offline"
}


Gostaria de saber se há alguma maneira de fazer isso em DAX (ou em M, se necessário).

Muito obrigado desde já.

Att,

Felipe Garé.

Re: Comparação Entre Datas e Horas

Enviado: 04 Mai 2021 às 15:20
por babdallas
Considerando que lastUpdateMinutes já seja uma medida calculada, você poderia fazer assim:
Código: Selecionar todos
_Status = 
SWITCH(
        TRUE(),
         [lastUpdateMinutes]>241)
         "offline",
         [lastUpdateMinutes]>60,
         "super atrasado",
         [lastUpdateMinutes] > 25 ,
         "atrasado",
         "online"
)

Re: Comparação Entre Datas e Horas

Enviado: 04 Mai 2021 às 16:29
por felipegare
Muito obrigado! Já ajudou bastante

Porém, LastUpdateMinutes não é uma medida calculada, é uma coluna de uma tabela.

Teria como fazer utilizando essa coluna dessa forma?

Se necessário, tenho o código em SQL tbm

select CASE
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) < 25 THEN 'ONLINE'
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) BETWEEN 26 AND 60 THEN 'ATRASADO'
WHEN DATEDIFF(minute, max(UpdateTime), GETDATE()) BETWEEN 61 AND 240 THEN 'SUPER ATRASADO'
ELSE 'OFFLINE'
END as DelaiedMinutes ,
max(UpdateTime) as LastMessage,
FixedAsset
from <nome do banco>
group by FixedAsset
order by 2 ASC

Re: Comparação Entre Datas e Horas

Enviado: 04 Mai 2021 às 22:10
por babdallas
Seria mais fácil você anexar um modelo fictício e dizer qual o resultado esperado.

Re: Comparação Entre Datas e Horas

Enviado: 05 Mai 2021 às 12:09
por felipegare
babdallas escreveu: 04 Mai 2021 às 15:20 Considerando que lastUpdateMinutes já seja uma medida calculada, você poderia fazer assim:
Código: Selecionar todos
_Status = 
SWITCH(
        TRUE(),
         [lastUpdateMinutes]>241)
         "offline",
         [lastUpdateMinutes]>60,
         "super atrasado",
         [lastUpdateMinutes] > 25 ,
         "atrasado",
         "online"
)
Teria como eu fazer isso se a "LastUpdateMinutes" não for uma medida? LastUpdateMinutes é uma coluna.

Também resolveria se tiver como transformá-la em uma medida para que eu possa usar a função

Re: Comparação Entre Datas e Horas

Enviado: 05 Mai 2021 às 15:39
por babdallas
Não entendi muito bem. Você quer fazer uma nova coluna ou uma medida? Anexa um pequeno modelo fictítio para ajudar no entendimento e diga o resultado esperado, por favor.