15 de diciembre de 2013

Transformación de fechas

Ejemplos de Función Date# Date para transformar fechas y luego darles formato. Esto como método alternativo a MakeDate, que usa 4 funciones haciendo más lento el load. Ejemplo: MakeDate(Left(20130628,4), Mid(20130628,5,2),Right(20130628,2))


1. Date#(20130628,'YYYYMMDD')
Devuelve 41453 en formato 20130628

2. Date(Date#(20130628,'YYYYMMDD'),'DD-MMM-YY')
             Devuelve 41453 con formato 28-jun-13

3. Date(Date#('2013.06.28','YYYY.MM.DD'),'DD-MMM-YY')
             Devuelve 41453 con formato 28-jun-13


4. Date(Date#('06-28-13','MM-DD-YY'),'DD-MMM-YY')
             Devuelve 41453 con formato 28-jun-13

5. Date(Date#('28.06.13' ,'DD.MM.YY'),'DD-MMM-YY')
              Devuelve 41453 con formato 28-jun-13

6. Date(Date#('jun.28.2011', 'MMM.DD.YYYY'), 'DD-MMM-YY')
              Devuelve 41453 con formato 28-jun-13

7. Para eliminar hora de una fecha
Date(Floor'2013-06-28 07:30:38),'DD-MMM-YY')
                     Devuelve 41453 con formato 28-jun-13 sin minutos

8. Para obtener solo la hora de una fecha
Time(Frac( '2013-06-28 11:30:38' ),'hh:mm:ss')
     Devuelve 0,47960648148 con formato 11:30:38

9. Para obtener Fecha y Hora
             DateTimestamp#( '20130628 11:30:38', 'YYYYMMDD hh:mm:ss'), 'DD-MMM-YY hh:mm:ss'   )
                      Devuelve 41453,479606481  con formato 28-jun-13 11:30:38

10. Para obtener día de la semana en fecha
             Date'2013-06-28', 'WWW DD-MMM-YY')
                      Devuelve 41453  con formato  vie 28-jun-13

11. Resta un mes a la fecha
AddMonths('2013-06-28',-1)
Devuelve 41422 en formato 28/05/2013 (formato predeterminado)



12. Suma un mes a la fecha
AddMonths('2013-06-28', 1)
Devuelve 41453 en formato 28/07/2013 (formato predeterminado)

13. Transforma la hora en un rango de 30 minutos:
Time( Floor('09:55',0.02083333333333330),'hh:mm') 
           Devuelve 0.395833333 en formato 09:30



14. Transforma la hora en un rango de 10 minutos
TimeFloor('09:55',0.006944444444444440),'hh:mm') 
           Devuelve 0.4097222222 en formato 09:50


NOTAS:
Al indicar un formato de hora en Qlikview la letra mayuscula M= mes,  y letra minuscula m= minutos



Otras transformaciones:
Para eliminar ceros a la izquierda, ver nota publicada aquí
Para transformar campos en escala normalizada, ver notas publicada aqui
Para transformar campos en escala normalizada especifica, ver notas publicada aqui






1 comentario:

Anónimo dijo...

Muy útil, añadiria también aquellos formatos de fecha que incluyen PM/AM, que se pueden indicar con TT, ver enlace: https://community.qlik.com/t5/QlikView-App-Development/Convert-DD-MM-YYYY-hh-mm-AM-into-date/td-p/1449233

Gracias!