# makedate Función de script y de gráfico

Esta función devuelve una fecha calculada a partir del año YYYY, el mes MM y el día DD.

Sintaxis:

MakeDate(YYYY [ , MM [ , DD ] ])

Tipo de datos que devuelve: dual

Argumentos

| Argumento | Descripción |
| --- | --- |
| YYYY | El año como un entero. |
| MM | El mes como un entero. Si no se especifica un mes, se presupone 1 (Enero). |
| DD | El día como un entero. Si no se define día alguno, se presupone 1 (el primero de mes). |

## Cuándo se utiliza

La función `makedate()` se utiliza habitualmente en el script para generación de datos, para generar un calendario. También puede utilizarse cuando el campo de fecha no está disponible directamente como fecha, pero necesita algunas transformaciones para extraer los componentes de año, mes y día.

Estos ejemplos utilizan el formato de fecha MM/DD/AAAA. El formato de la 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 funciones

| Ejemplo | Resultado |
| --- | --- |
| `makedate(2012)` | Devuelve 01/01/2012. |
| `makedate(12)` | Devuelve 01/01/2012. |
| `makedate(2012,12)` | Devuelve 12/01/2012. |
| `makedate(2012,2,14)` | Devuelve 02/14/2012. |

## Configuraciones regionales

A menos que se especifique algo distinto, los ejemplos de este tema utilizan el siguiente formato de fecha: MM/DD/YYYY. El formato de fecha se especifica en la sentencia `SET DateFormat` de su script de carga de datos. El formato de fecha predeterminado puede ser diferente en su sistema, debido a su configuración regional y otros factores. Puede cambiar el formato en los ejemplos a continuación para ajustarlo a sus necesidades. O puede cambiar los formatos en su script de carga para que coincidan con estos ejemplos.

La configuración regional predeterminada en las aplicaciones se basa en la configuración del sistema regional de la computadora o servidor donde esté instalado Qlik Sense. Si el servidor de Qlik Sense al que está accediendo está configurado en Suecia, el editor de carga de datos utilizará la configuración regional sueca para las fechas, la hora y la moneda. Estos ajustes de formato regional no están relacionados con el idioma mostrado en la Qlik Sense interfaz de usuario. Qlik Sense se mostrará en el mismo idioma que el navegador que esté utilizando.

## Ejemplo 1: ejemplo básico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Script de carga y resultados

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que contiene un conjunto de transacciones de 2018, que se carga en una tabla llamada "`Transactions`".

* El campo de fecha proporcionado en el formato de la variable del sistema `DateFormat`: (MM/DD/AAAA).

* La creación de un campo, `transaction_date`, que devuelve una fecha en formato MM/DD/AAAA.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        makedate(transaction_year, transaction_month, transaction_day) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 23, 3177.4, 21, 203521
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Tabla de resultados

| transaction\_year | transaction\_month | transaction\_day | transaction\_date |
| --- | --- | --- | --- |
| 2018 | 08 | 30 | 08/30/2018 |
| 2018 | 09 | 07 | 09/07/2018 |
| 2018 | 09 | 16 | 09/16/2018 |
| 2018 | 09 | 22 | 09/22/2018 |
| 2018 | 09 | 23 | 09/23/2018 |

El campo `transaction_date` se crea en la instrucción load anterior utilizando la función `makedate()` e introduciendo los campos de año, mes y día como argumentos de la función.

Luego la función combina y convierte estos valores en un campo de fecha, devolviendo los resultados en el formato de la variable del sistema `DateFormat`.

## Ejemplo 2: formato de fecha modificado

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Script de carga y resultados

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Se utilizan el mismo conjunto de datos y escenario que en el primer ejemplo.

* La creación de un campo, `transaction_date`, en el formato DD/MM/AAAA, sin modificar la variable del sistema `DateFormat`.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
    Load
        *,
        date(makedate(transaction_year, transaction_month, transaction_day), ‘DD/MM/YYYY’) as transaction_date
        ; 
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_day, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 30, 12423.56, 23, 2038593
3751, 2018, 09, 07, 5356.31, 6, 203521
3752, 2018, 09, 16, 15.75, 1, 5646471
3753, 2018, 09, 22, 1251, 7, 3036491
3754, 2018, 09, 22, 21484.21, 1356, 049681
3756, 2018, 09, 22, -59.18, 2, 2038593
3757, 2018, 09, 23, 3177.4, 21, 203521
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Tabla de resultados

| transaction\_year | transaction\_month | transaction\_day | transaction\_date |
| --- | --- | --- | --- |
| 2018 | 08 | 30 | 30/08/2018 |
| 2018 | 09 | 07 | 07/09/2018 |
| 2018 | 09 | 16 | 16/09/2018 |
| 2018 | 09 | 22 | 22/09/2018 |
| 2018 | 09 | 23 | 23/09/2018 |

En este caso, la función `makedate()` está anidada dentro de la función `date()`. El segundo argumento de la función `date()` establece el formato de los resultados de la función `makedate()` como el DD/MM/AAAA requerido.

## Ejemplo 3: ejemplo de objeto gráfico

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Script de carga y expresión de gráfico

Vista general

Abra el Editor de carga de datos y añada el script de carga inferior en una nueva sección.

El script de carga contiene:

* Un conjunto de datos que contiene un conjunto de transacciones de 2018, que se carga en una tabla llamada `Transactions`.

* Las fechas de transacción proporcionadas en dos campos: `year` y `month`.

Cree una medida de objeto gráfico, `transaction_date`, que devuelva una fecha en el formato MM/DD/AAAA.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Transactions:
Load * Inline [
transaction_id, transaction_year, transaction_month, transaction_amount, transaction_quantity, customer_id
3750, 2018, 08, 12423.56, 23, 2038593
3751, 2018, 09, 5356.31, 6, 203521
3752, 2018, 09, 15.75, 1, 5646471
3753, 2018, 09, 1251, 7, 3036491
3754, 2018, 09, 21484.21, 1356, 049681
3756, 2018, 09, -59.18, 2, 2038593
3757, 2018, 09, 3177.4, 21, 203521
];
```

Resultados

Cargue los datos y abra una hoja. Cree una nueva tabla y agregue estos campos como dimensiones:

* `year`

* `month`

Para averiguar la `transaction_date`, cree esta medida:

`=makedate(transaction_year,transaction_month)`

Tabla de resultados

| transaction\_year | transaction\_month | transaction\_date |
| --- | --- | --- |
| 2018 | 08 | 08/01/2018 |
| 2018 | 09 | 09/01/2018 |

La medida `transaction_date` se crea en el objeto gráfico utilizando la función `makedate()` e indicando los campos de año y mes como argumentos de la función.

La función luego combina estos valores, así como el valor del día asumido de 01. Estos valores luego se convierten en un campo de fecha, devolviendo los resultados en el formato de la variable del sistema `DateFormat`.

## Ejemplo 4: Escenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/makedate.htm)

#### Script de carga y expresión de gráfico

Vista general

Cree un conjunto de datos de calendario para el año natural de 2022.

Script de carga

```
SET DateFormat='MM/DD/YYYY';

Calendar:
	load 
		*
    where year(date)=2022;
load
	date(recno()+makedate(2021,12,31)) as date
AutoGenerate 400;
```

Resultados

Tabla de resultados

| date |
| --- |
| 01/01/2022 |
| 01/02/2022 |
| 01/03/2022 |
| 01/04/2022 |
| 01/05/2022 |
| 01/06/2022 |
| 01/07/2022 |
| 01/08/2022 |
| 01/09/2022 |
| 01/10/2022 |
| 01/11/2022 |
| 01/12/2022 |
| 01/13/2022 |
| 01/14/2022 |
| 01/15/2022 |
| 01/16/2022 |
| 01/17/2022 |
| 01/18/2022 |
| 01/19/2022 |
| 01/20/2022 |
| 01/21/2022 |
| 01/22/2022 |
| 01/23/2022 |
| 01/24/2022 |
| 01/25/2022 |
| + 340 filas más |

La función makedate() crea un valor de fecha para el 31 de diciembre de 2021. La función recno() proporciona el número de registro del registro actual que se está cargando en la tabla, comenzando desde 1. Por lo tanto, el primer registro tiene la fecha del 1 de enero de 2022. Cada fecha sucesiva recno() incrementará esta fecha en 1. Esta expresión va incluida en una función date() para convertir el valor en una fecha. La función autogenerate repite este proceso 400 veces. Por último, usando un load anterior, se puede aplicar una condición where para que cargue solo fechas del año 2022. Este script genera un calendario que contiene todas las fechas en 2022.