Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Extraer la hora de un campo fecha

Buen día a todos, soy nuevo en Qlikview, y editando el script me encuentro con el siguiente problema. De un campo fecha, pude extraer MES, DIA y AÑO pero al intentar extraer la HORA, en la compilación el programa me dice que la funcion no está incorporada. Que me puede estar faltando definir?.

Desde ya gracias

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Alfredo, estás aplicando la función Hour() en la base de datos, no en QlikView. Todo lo que va tras SQL SELECT es interpretado por la base de datos mientras que todo lo que va tras LOAD es interpretado por Qlik. Si el driver o la base de datos no aceptan la función Hour() tendrás que o bien hacerlo en la parte del LOAD o bien usando la función de conversión correspondiente. Muy probablemente esta función sea Time()

View solution in original post

7 Replies
Not applicable
Author

Perdón, agrego mas datos

SQL SELECT CODCAJ,

    CODCMP,

    CODCTACTE,

    CODCUE,

    CODEMP,

    CODSUC,

    CODTRAT,

    FECHA,

    FECHAREGORI,

    day(FECHAREGORI) as DI,

    month(FECHAREGORI)as ME,

    year(FECHAREGORI) as AN,

    Hour(FECHAREGORI)as hor,

    NROTRANS,

    NUMERO,

    NUMEROEXT,

    PREFIJO,

    TOTAL,

    TOTALCANT,

    TOTALIVA

FROM dbo.transac;

lo que está en negrita genera el problema

Not applicable
Author

Este es el error que me da

SQL##f - SqlState: 37000, ErrorCode: 195, ErrorMsg: [Microsoft][ODBC SQL Server Driver][SQL Server]'Hour' no es un nombre de función integrada reconocido.

Not applicable
Author

Lo resolvi creando una vista en la base de datos

Miguel_Angel_Baeyens

Alfredo, estás aplicando la función Hour() en la base de datos, no en QlikView. Todo lo que va tras SQL SELECT es interpretado por la base de datos mientras que todo lo que va tras LOAD es interpretado por Qlik. Si el driver o la base de datos no aceptan la función Hour() tendrás que o bien hacerlo en la parte del LOAD o bien usando la función de conversión correspondiente. Muy probablemente esta función sea Time()

maxgro
MVP
MVP

I think you have more than one problem

In Sql Server you can use the datepart function to extract year, month, etc...., hour

DATEPART (Transact-SQL) | Microsoft Docs

Another option is to use a preceding load; with this option you can use the year, month, and all the QlikView function

LOAD

     *,

     year(FECHAREGORI) as AN,

     .....

;

SQL SELECT CODCAJ,

    CODCMP,

    CODCTACTE,

    CODCUE,

    CODEMP,

    CODSUC,

    CODTRAT,

    FECHA,

    FECHAREGORI,

    NROTRANS,

    NUMERO,

    NUMEROEXT,

    PREFIJO,

    TOTAL,

    TOTALCANT,

    TOTALIVA

FROM dbo.transac;

Not applicable
Author

Muchas gracias Miguel, si bien lo solucioné creando una vista en sql, voy a probar lo que me sugieres.

Not applicable
Author

Muchas gracias Massimo, veo que tenía varias opciones. Probaré para ir ampliando mis herramientas.