Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
fabio_vallone
Creator
Creator

Conflito de datas no Qlikview Server

Bom dia amigos!

Eu utilizo o Qlikview 11.20.13206.0 em um servidor Windows Server 2008 R2 DataCenter (VM). O S.O. do servidor está em inglês.


Tenho frequentes problemas quando carrego campos de Data via SQL (base Oracle). O Qlik por algum motivo não reconhece o formato correto (dd/mm/yyyy) e tenho que passar tratativas nos scripts, do tipo: TO_DATE() por dentro, TO_CHAR() por fora, até que eu entre em "consenso" com o qlik e ele retorne a data corretamente... já mexi nas configurações regionais e de idioma do S.O., já configurei os SET dos extratores, mas nada resolve. Obs: o problema não é trazer a data no formato numérico (ex: 413455), ele simplesmente não reconhece a data e muitas vezes traz até "null" no campo!


Alguém sabe se existe outro local de configuração, além dos SET e das configurações regionais do S.O., onde o Qlikview Server possa estar buscando a configuração "americana" de datas, e onde eu possa corrigir? Ou alguma outra alternativa para trabalhar com datas no qlik sem a necessidade de passar diversos parâmetros de tratamento de data nos SQL que extraem as informações?


Obrigado,


Fabio.

Labels (3)
1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

A melhor maneira é realmente usar o TO_DATE() nos seus campos data quando estiver montando a sua query.

A query é executada "fora" do QlikView pelo driver OleDb ou ODBC (você não disse qual usa).

Se quiser fazer alterar o padrão use os comandos abaixo no seu script Qlik:

SQL

ALTER SESSION
SET NLS_DATE_FORMAT = 'DD/MON/YYYY HH24:MI:SS';

SELECT Getdate() from Dual -- Ponha sua query aqui


Pelo SQL Developer, este altera o parâmetro NLS_DATE, por isso você notou a diferença entre eles

View solution in original post

6 Replies
maiconmello
Creator III
Creator III

Bom dia ,

Como estão as variáveis nos seus modelos ?

Essas variáveis são as primeiras linhas no modelo, opção editar script.

SET ThousandSep='.';

SET DecimalSep=',';

SET MoneyThousandSep='.';

SET MoneyDecimalSep=',';

SET MoneyFormat='R$ #.##0,00;-R$ #.##0,00';

SET TimeFormat='hh:mm:ss';

SET DateFormat='DD/MM/YYYY';

SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

SET MonthNames='jan;fev;mar;abr;mai;jun;jul;ago;set;out;nov;dez';

SET DayNames='seg;ter;qua;qui;sex;sáb;dom';

fabio_vallone
Creator
Creator
Author

Olá Maicon,

Sim, estão todas desta forma. Mesmo assim, ao chamar o SQL SELECT ... ele se confunde na extração dos campos data, principalmente quando o script possui functions que pegam uma data e tratam, por exemplo, tira o "dia" e faz uma concatenação, vamos supor, ('01/' || TO_CHAR(campodata, 'MM/YYYY')). Curioso é que, pelo SQL Developer, o campo traz certinho, tanto no desktop quanto no servidor... o erro é só quando carrega via Qlik.

Obrigado

maiconmello
Creator III
Creator III

Entendi fabioval‌, que estou achando que pode ser seu driver odbc !

Mesmo não esta conseguindo interpretar.

Clever_Anjos
Employee
Employee

A melhor maneira é realmente usar o TO_DATE() nos seus campos data quando estiver montando a sua query.

A query é executada "fora" do QlikView pelo driver OleDb ou ODBC (você não disse qual usa).

Se quiser fazer alterar o padrão use os comandos abaixo no seu script Qlik:

SQL

ALTER SESSION
SET NLS_DATE_FORMAT = 'DD/MON/YYYY HH24:MI:SS';

SELECT Getdate() from Dual -- Ponha sua query aqui


Pelo SQL Developer, este altera o parâmetro NLS_DATE, por isso você notou a diferença entre eles

fabio_vallone
Creator
Creator
Author

Obrigado Maicon!

Olá Clever, utilizo o ODBC. O script é o mesmo? Grato

Clever_Anjos
Employee
Employee

É o mesmo