Esta función encuentra si una indicación de fecha y hora cae dentro del mismo mes, periodo de dos meses, trimestre, cuatrimestre o semestre dado como una fecha base. También es posible hallar si la fecha-hora cae dentro de un periodo de tiempo anterior o posterior.
El número de meses que define el periodo. Un entero o expresión que devuelve un entero que debe ser uno de los siguientes: 1 (equivalente a la función inmonth()), 2 (bimestral), 3 (equivalente a la función inquarter()), 4 (terciario) o 6 (semestral).
timestamp
La fecha que desea comparar con base_date.
base_date
La fecha que se utiliza para evaluar el periodo.
period_no
El período se puede desplazar mediante period_no, un entero o una expresión que devuelve un entero, donde el valor 0 indica el período que contiene a base_date. Los valores negativos en period_no indican períodos precedentes y los valores positivos indican períodos subsiguientes.
first_month_of_year
Si desea trabajar con años (fiscales) que no comiencen en enero, indique un valor entre 2 y 12 en first_month_of_year.
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 de datos. Cambie el formato en los ejemplos según se ajuste a sus necesidades.
Ejemplos de script
Ejemplo
Resultado
inmonths(4, '25/01/2013', '25/04/2013', 0)
Devuelve True. Porque el valor de timestamp, 25/01/2013, cae dentro del período de cuatro meses, del 01/01/2013 al 30/04/2013, en el que está el valor de base_date, 25/04/2013.
inmonths(4, '25/05/2013', '25/04/2013', 0)
Devuelve False. Porque 25/05/2013 está fuera del mismo periodo que el ejemplo anterior.
inmonths(4, '25/11/2012', '01/02/2013', -1 )
Devuelve True. Porque el valor de period_no, -1, desplaza el período de búsqueda un período de cuatro meses atrás (el valor de n-months), lo que hace que el período de búsqueda sea de 01/09/2012 a 31/12/2012.
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 que hace que el período de búsqueda sea de 01/03/2006 a 30/07/2006 en vez de 01/01/2006 a 30/04/2006.
Example:
Agregue el script de ejemplo en su app y ejecútelo. A continuación, agregue como mínimo los campos de la columna de resultados en una hoja de su app para ver el resultado.
Este ejemplo comprueba si la fecha de la factura de la tabla cae en el período de dos meses que incluye a base_date desplazado hacia adelante en un período bimensual (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 período de búsqueda es del 01/03/2013 al 30/04/2013, porque el valor de base_date se desplaza hacia delante dos meses a partir del valor de la función (11/02/2013).