inlunarweek - función de script y de gráfico
Esta función devuelve verdadero si timestamp se encuentra dentro de la semana lunar que contiene a base_date. Las semanas lunares en QlikView se definen contando 1 de enero como el primer día de la semana.
Sintaxis:
InLunarWeek (timestamp, base_date, period_no[, first_week_day])
Tipo de datos que devuelve: Booleano
Argumentos:
Argumento | Descripción |
---|---|
timestamp | La fecha que desee comparar con base_date. |
base_date | La fecha que se utiliza para evaluar la semana lunar. |
period_no | La semana lunar puede desplazarse mediante period_no; period_no es un entero, en el que el valor 0 indica la semana lunar que contiene a base_date. Los valores negativos en period_no indican semanas lunares precedentes y los valores positivos indican semanas lunares subsiguientes. |
first_week_day | Un desplazamiento que puede ser mayor que o menor que cero. Esto cambia el comienzo del año por el número especificado de días y/o fracciones de un día. |
Ejemplo 1:
inlunarweek('12/01/2013', '14/01/2013', 0)
Devuelve True. Porque el valor de timestamp, 12/01/2013 cae en la semana 08/01/2013 a 14/01/2013.
Ejemplo 2:
inlunarweek('12/01/2013', '07/01/2013', 0)
Devuelve False. Porque la fecha base_date 07/01/2013 está en la semana lunar definida como 01/01/2013 a 07/01/2013.
Ejemplo 3:
inlunarweek('12/01/2013', '14/01/2013', -1)
Devuelve False. Porque especificar un valor de period_no como -1 desplaza la semana a la semana previa, 01/01/2013 a 07/01/2013.
Ejemplo 4:
inlunarweek('07/01/2013', '14/01/2013', -1)
Devuelve True. Comparado con el ejemplo anterior, la fecha hora está en la semana posterior a tenerse en cuenta el desplazamiento hacia atrás.
Ejemplo 5:
inlunarweek('11/01/2006', '08/01/2006', 0, 3)
Devuelve False. Porque especificar un valor para first_week_day de 3 significa que el inicio del año se calcula desde 04/01/2013, y por lo tanto el valor de base_date cae en la primera semana, y el valor de timestamp cae en la semana de 11/01/2013 a 17/01/2013.
Ejemplo 6:
Añada el script de ejemplo a su documento y ejecútelo. A continuación, añada como mínimo los campos de la columna de resultados a una hoja de su documento para ver el resultado.
Este ejemplo comprueba si una fecha de facturación entra dentro de la semana desplazada desde el valor de base_date en cuatro semanas.
TempTable:
LOAD RecNo() as InvID, * Inline [
InvDate
28/03/2012
10/12/2012
5/2/2013
31/3/2013
19/5/2013
15/9/2013
11/12/2013
2/3/2014
14/5/2014
13/6/2014
7/7/2014
4/8/2014
];
InvoiceData:
LOAD *,
InLunarWeek(InvDate, '11/01/2013', 4) AS InLWeekPlus4
Resident TempTable;
Drop table TempTable;
La tabla resultante contiene las fechas originales y una columna con el valor de retorno de la función inlunarweek().
La función devuelve True para el valor de InvDate5/2/2013 porque el valor de base_date, 11/01/2013, se desplaza en cuatro semanas y por lo tanto cae en la semana de 5/02/2013 a 11/02/2013.
InvDate | InLWeekPlus4 |
---|---|
28/03/2012 | 0 (False) |
10/12/2012 | 0 (False) |
5/2/2013 | -1 (True) |
31/3/2013 | 0 (False) |
19/5/2013 | 0 (False) |
15/9/2013 | 0 (False) |
11/12/2013 | 0 (False) |
2/3/2014 | 0 (False) |
14/5/2014 | 0 (False) |
13/6/2014 | 0 (False) |
7/7/2014 | 0 (False) |
4/8/2014 | 0 (False) |