Esta función encuentra si una marca de tiempo (fecha-hora) cae dentro de la parte del período de un mes, dos meses, tres meses, cuatro meses o medio año hasta e incluido el último milisegundo de base_date. También es posible hallar si la fecha-hora cae dentro de un periodo 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
inmonthstodate(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 hasta el final de 25/04/2013, en el que se encuentra el valor de base_date, 25/04/2013.
inmonthstodate(4, '26/04/2013', '25/04/2006', 0)
Devuelve False. Porque 26/04/2013 está fuera del mismo periodo que el ejemplo anterior.
inmonthstodate(4, '25/09/2005', '01/02/2006', -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/2005 a 01/02/2006.
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 01/06/2006 en vez de 01/05/2006 a 01/06/2006.
Ejemplo:
Agregue el script de ejemplo en su app y ejecútelo. Para ver el resultado, agregue los campos enumerados en la columna de resultados a una hoja de su app.
Este ejemplo comprueba si la fecha de la factura de la tabla cae en la parte del período de dos meses hasta e incluyendo a base_date desplazada hacia delante en cuatro períodos de dos meses (especificando period_no como 4).
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 *,
InMonthsToDate(2, InvDate, '15/02/2013', 4) AS InMths2DPlus4
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 de 01/09/2013 a 15/10/2013, porque el valor de base_date se desplaza hacia adelante ocho meses desde el valor en la función (15/02/2013).
Tabla de resultados
InvDate
InMths2DPlus4
28/03/2012
0 (False)
10/12/2012
0 (False)
5/2/2013
0 (False)
31/3/2013
0 (False)
19/5/2013
0 (False)
15/9/2013
-1 (True)
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)
¿Esta página le ha sido útil?
No dude en indicarnos en qué podemos mejorar si encuentra algún problema en esta página o su contenido, como, por ejemplo, errores tipográficos, pasos que falta o errores técnicos.