inmonths - función de script y de gráfico
Esta función determina si una fecha-hora se encuentra dentro del mismo mes, período bimensual, trimestral, cuatrimestral o semestral que fecha base. También es posible hallar si la fecha-hora cae dentro de un período anterior o posterior.
Sintaxis:
InMonths(n_months, timestamp, base_date, period_no [, first_month_of_year])
Tipo de datos que devuelve: Booleano
Argumentos:
Argumento | Descripción |
---|---|
n_months |
El número de meses que define el período. Un entero, o expresión que devuelve un entero, que debe ser una de las siguientes opciones: 1 (equivalente a la función inmonth()), 2 (período bimensual), 3 (equivalente a la función inquarter()), 4 (período cuatrimestral), o 6 (semestral). |
timestamp | La fecha que desee comparar con base_date. |
base_date | La fecha que se utiliza para evaluar el periodo. |
period_no |
El periodo puede desplazarse mediante period_no, un entero, o expresión que viene a ser un entero, en el que el valor 0 indica el periodo que contiene a base_date. Los valores negativos en period_no indican periodos precedentes y los valores positivos indican periodos subsiguientes. |
first_month_of_year |
Si desea trabajar con años (fiscales) que no comiencen en enero, especifique un valor entre 2 y 12 en first_month_of_year. |
Ejemplos y resultados:
Estos ejemplos utilizan el formato de fecha DD/MM/YYYY. El formato de fecha se especifica en la sentencia SET DateFormat en la parte superior de su script de carga. Cambie el formato en los ejemplos según se ajuste a sus necesidades.
Ejemplo 1:
inmonths(4, '25/01/2013', '25/04/2013', 0)
Devuelve True. Porque el valor de timestamp, 25/01/2013, cae dentro del periodo de cuatro meses de 01/01/2013 a 30/04/2013, en el que reside el valor de base_date, 25/04/2013.
Ejemplo 2:
inmonths(4, '25/05/2013', '25/04/2013', 0)
Devuelve False. Porque 25/05/2013 está fuera del mismo periodo que el ejemplo anterior.
Ejemplo 3:
inmonths(4, '25/11/2012', '01/02/2013', -1 )
Devuelve True. Porque el valor de period_no, -1, desplaza el periodo de búsqueda hacia atrás un periodo de cuatro meses (el valor de n-months), lo cual hace que el periodo de búsqueda sea 01/09/2012 a 31/12/2012.
Ejemplo 4:
inmonths( 4, '25/05/2006', '01/03/2006', 0, 3)
Devuelve True. Porque el valor de first_month_of_year está fijado en 3, lo cual hace que el periodo de búsqueda sea de 01/03/2006 a 30/07/2006, en lugar de 01/01/2006 a 30/04/2006.
Ejemplo 5:
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 la fecha de facturación de la tabla cae dentro del periodo bimensual que incluye la fecha base_date desplazada hacia delante en un periodo de dos meses (especificando period_no como 1).
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 *,
InMonths(2, InvDate, '11/02/2013', 1) AS InMthsPlus1
Resident TempTable;
Drop table TempTable;
La tabla resultante contiene las fechas originales y una columna con el valor de retorno de la función InMonths().
El periodo de búsqueda es de 01/03/2013 a 30/04/2013, porque el valor de base_date se desplaza hacia delante dos meses a partir del valor especificado en la función (11/02/2013).
InvDate | InMthsPlus1 |
---|---|
28/03/2012 | 0 (False) |
10/12/2012 | 0 (False) |
5/2/2013 | 0 (False) |
31/3/2013 | -1 (True) |
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) |