Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Cargar datos ficheros qvd

Buenas,

      Tengo la siguiente duda.....Yo leo unos ficheros de texto separados por "|" , uno de los campos es una fecha y lo leo de la siguiente forma

                Date(floor(@1),'DD/MM/YYYY') as fecha

      Esos registros que leo, los guardo a posteriori en un fichero .qvd.

      Mi problemática ahora es la siguiente, quiero recuperar registros desde ese fichero .qvd, pero solo en determinado periodo. He intentado las siguientes opciones:

        load *

        FROM $(vDatosqvd) (qvd)

      

         where fecha >=  '01/11/2016'            

         where fecha >= Date('01/11/2016');

Pero en ningún caso me filtra por la fecha sino que me hace la carga de todos los datos guardados en el fichero qvd

¿Alguien tiene una idea de porque tiene ese comportamiento? ¿que estoy haciendo incorrecto?

Un saludo

1 Solution

Accepted Solutions
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Jonay:

Los filtros de fechas es mejor usarlos en formato YYYY/MM/DD o en formato ordinal nnnnn (42702 = 28/11/2016)

Saludos

Joaquín

View solution in original post

4 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Jonay:

Los filtros de fechas es mejor usarlos en formato YYYY/MM/DD o en formato ordinal nnnnn (42702 = 28/11/2016)

Saludos

Joaquín

Miguel_Angel_Baeyens

Tal como Joaquín sugiere, deberías comprobar cómo se visualizan esos campos de fecha en la aplicación, si realmente se almacenan como DD/MM/YYYY o con cualquier otro formato.

También podrías utilizar el LOAD con algo parecido a

LOAD *

FROM File.qvd (qvd)

WHERE Date(Fecha) >= Date('28/11/2016');

Es decir, aplicando la función de fecha también sobre el campo, no solo sobre el valor. No es la mejor opción ya que aumentará el tiempo de carga y supone más mantenimiento.

En este aspecto, y si la carga siempre va a ser de una fecha en concreto, te recomendaría almacenar los QVDs por fechas, de forma que la lectura sea siempre completa:

SET vFechaCarga = '20161128'; // no se pueden usar caracteres como "/" ya que Windows no los soporta como nombres de fichero

LOAD *

FROM $(vFechaCarga).qvd (qvd);

o algo similar (un ejemplo de muchos aquí).

Anonymous
Not applicable
Author

Buenas chicos,

   Antes que nada darles las gracias por la ayuda.

   El campo fecha cargado dentro del fichero .qvvw lo tengo en el formato DD/MM/YYYY. Si en el where donde cargo los datos vario el formato fecha como dice Joaquín, me funciona correctamente

        where            fecha >= '2016-11-28'

   Ahora me surge la duda de porque qlikview de esa forma si lo reconoce, y porque asocia las fechas en diferente formato DD/MM/YYYY  con YYYY/MM/DDDD. Pero funcionar, esta funcionando

Un saludo

Miguel_Angel_Baeyens

Funciona porque si el valor de la fecha es numérico, QlikView hace la representación de forma automática, y aunque tú lo puedas ver en los gráficos, script o aplicación como como "DD/MM/YYYY" o "DD/YYYY/MM" o "nnnnn" es, al final, una representación de un mismo dato que no afecta al dato almacenado.

De hecho, tienes una variable en el script que establece cómo va a representar, por defecto, los valores numéricos en las funciones de fecha, pero también has de tener en cuenta el formato de origen, el driver para la extracción de los datos si lo hay, la configuración regional del sistema operativo, etc.

Más sobre representación e interpretación de fechas en QlikView: evaluating time stamp

Y en general sobre las fechas: Get the Dates Right