# inmonthstodate - función de script y de gráfico

Esta función halla si una fecha-hora se encuentra dentro de parte de un período mensual, bimensual, trimestral, cuatrimestral o semestral hasta e incluido el último milisegundo de base\_date. 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:

Argumentos de InMonthsToDate

| 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:

`inmonthstodate(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 01/01/2013 hasta el final de 25/04/2013, en el que reside el valor de base\_date, 25/04/2013.

Ejemplo 2:

`inmonthstodate(4, '26/04/2013', '25/04/2006',   0)`

Devuelve False. Porque 26/04/2013 está fuera del mismo periodo que el ejemplo anterior.

Ejemplo 3:

`inmonthstodate(4, '25/09/2005', '01/02/2006',   -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/2005 a 01/02/2006.

Ejemplo 4:

`inmonthstodate(4, '25/04/2006', '01/06/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 01/06/2006, en lugar de 01/05/2006 a 01/06/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 en la parte del periodo bimensual que abarca e incluye la fecha base\_date desplazada hacia delante en cuatro periodos de dos meses (especificando 4 como period\_no).

`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 periodo de búsqueda es de 01/09/2013 a 15/10/2013, porque el valor de base\_date se desplaza hacia delante ocho meses a partir del valor especificado en la función (15/02/2013).

Resultados del ejemplo 5

| 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) |