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

Esta función devuelve un valor correspondiente a la fecha y hora del primer milisegundo del mes, bimestre, trimestre, cuatrimestre o semestre que contiene una fecha base. También es posible hallar la fecha-hora de un período anterior o posterior.

Sintaxis:

MonthsStart(n\_months, date[, period\_no [, first\_month\_of\_year]])

**Tipo de datos que devuelve:** dual

Argumentos:

Argumentos de MonthsStart

| 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). |
| date | La fecha que se ha de evaluar. |
| 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:

`monthsstart(4, '19/10/2013')`

Devuelve 1/09/2013.

Ejemplo 2:

`monthsstart(4, '19/10/2013', -1)`

Devuelve 01/05/2013.

Ejemplo 3:

`monthsstart(4, '19/10/2013', 0, 2  )`

Devuelve 01/10/2013.   
Porque el inicio del año se convierte en el mes 2.

Ejemplo 4:

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 encuentra el primer día del periodo bimensual de cada fecha de facturación, desplazado hacia delante en un periodo de dos meses.

`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 *,` `MonthsStart(2, InvDate,  1) AS BiMthsStart` `Resident TempTable;`

`Drop table TempTable;`

La tabla resultante contiene las fechas originales y una columna con el valor de retorno de la función MonthsStart().

Resultados del ejemplo 4

| InvDate | BiMthsStart |
| --- | --- |
| 28/03/2012 | 01/05/2012 |
| 10/12/2012 | 01/01/2013 |
| 5/2/2013 | 01/03/2013 |
| 31/3/2013 | 01/05/2013 |
| 19/5/2013 | 01/07/2013 |
| 15/9/2013 | 01/11/2013 |
| 11/12/2013 | 01/01/2014 |
| 2/3/2014 | 01/05/2014 |
| 14/5/2014 | 01/07/2014 |
| 13/6/2014 | 01/07/2014 |
| 7/7/2014 | 01/09/2014 |
| 4/8/2014 | 01/09/2014 |