Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Condição de data

Boa tarde!

Estou fazendo um exemplo e quero cravar no código que quero tudo que for acima da data 20/09/2017 03:00:00.

Só que dessa forma não retorna nenhum valor:

Count({$<dtFechamentoh={'>20/09/2017 03:00:00'}>}ddtKey)

Alguem pode me dar alguma ideia?

Labels (1)
14 Replies
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Fabiola,


Depende de como seus dados estão na questão da data, se a data estiver como string (texto) não irá conseguir fazer o set analysis em cima.

Veja se a sua data está alinhada a esquerda na celula de uma tabela simples, isso irá indicar se é texto (alinhado à esquerda) ou número / data (alinhamento à direita).

Com um código simples como o seguinte, carregando duas datas e valores:

x:

load * Inline

[

data,valor

42998,1 // corresponde ao dia 20/09/2017 no campo data

42999,2 // corresponde ao dia 21/09/2017 no campo data

];

NoConcatenate

dados:

Load

data+0.125 as data,

valor

Resident x;

drop table x;

E fazendo uma tabela com seu set analysis, eu pego apenas o segundo valor de data, conforme abaixo:

Sample.png

Sugiro que você faça uma formatação de data com date#(Campo,'DD/MM/YYYY hh:mm:ss') para que o campo vire uma data.

Felipe.

Anonymous
Not applicable
Author

Estou colocando na expressão, já tentei formatar usando date mas não deu certo.expressao.png

felipedl
Partner - Specialist III
Partner - Specialist III

Oi Fabiola,

A simples formatação pode não ter efeito no campo se ele for do tipo texto.

Você teria que transformar ele em uma data, com o Date#() para que o Qlik interprete o valor textual e transforme em uma data.

Ao invés de

Date([dtFechamento],'DD/MM/YYYY hh:mm:ss') as dtFechamento

na sua carga de dados, seria preciso fazer

Date#([dtFechamento],'DD/MM/YYYY hh:mm:ss') as dtFechamento

Você consegue disponibilizar o arquivo para poder ver o código?

Felipe.

Anonymous
Not applicable
Author

está exatamente desse jeito: Date([dtFechamento],'DD/MM/YYYY hh:mm:ss').

Obrigada pela dica. Vou tentar fazer como vc falou.

Clever_Anjos
Employee
Employee

Fabiola,

Tente com aspas duplas e reveja qual o formato exato do seu campo dtFechamentoh

Count({<dtFechamentoh={">20/09/2017 03:00:00"}>}ddtKey)


Aspas duplas - Pesquisa

Aspas simples - Literal

Anonymous
Not applicable
Author

Mesmo assim não funciona.

A camada 1 estou formatando a data conforme foi sugerido.

Na 2 não tem modificação

E na expressão, estou demonstrando como estou fazendo:camada1.pngcamda2.pngexpressao.png

Clever_Anjos
Employee
Employee

É importante você entender a diferença entre date#() e Date()

date#()  - Cria um campo data (numerico) partindo de um campo string e aplica a mascara padrão (lá no começo do script)

Date()   - Aplica uma mascara a um campo

A melhor maneira de verificar o formato de um campo é incluir ele "puro" em um filtro/lista

Anonymous
Not applicable
Author

Isso eu verifiquei, coloquei no eixo x o campo data ai aparece no formato DD/MM/YYYY hh:mm:ss , engraçado que quando eu coloco o sinal de igual ele funciona, mas quando coloco o sinal de maior ele não funciona.

Obrigada pelos ensinamentos Clever!

Clever_Anjos
Employee
Employee

Tenta colocar apenas assim

Count({<dtFechamento={">20/09/2017 03:00:00"}>} ddKey)