# makedate - funzione dello script e del grafico

Questa funzione restituisce una data calcolata dall'anno YYYY, dal mese MM e dal giorno DD.

Sintassi:

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

Tipo di dati restituiti: duale

Argomenti

| Argomento | Descrizione |
| --- | --- |
| YYYY | L'anno è un numero intero. |
| MM | Il mese è un numero intero. Se non si indica il mese, verrà utilizzato come valore 1 (gennaio). |
| DD | Il giorno è un numero intero. Se non si indica un giorno, verrà utilizzato come valore 1 (primo giorno). |

## Casi di utilizzo

La funzione `makedate()` viene comunemente utilizzata nello script per la generazione dei dati per generare un calendario. Ciò potrebbe essere usato anche quando il campo data non è direttamente disponibile come data, ma necessita di alcune trasformazioni per estrarre i componenti di anno, mese e giorno.

In questi esempi viene utilizzato il formato della data (MM/GG/AAAA). Il formato della data viene specificato nell'istruzione `SET DateFormat` nella parte superiore dello script di caricamento dei dati. Modificare il formato negli esempi in base alle proprie necessità.

Esempi di funzioni

| Esempio | Risultato |
| --- | --- |
| `makedate(2012)` | Restituisce 01/01/2012. |
| `makedate(12)` | Restituisce 01/01/2012. |
| `makedate(2012,12)` | Restituisce 12/01/2012. |
| `makedate(2012,2,14)` | Restituisce 02/14/2012. |

## Impostazioni locali

Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione `SET DateFormat` nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi.

Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.

## Esempio 1 – Esempio di base

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente un insieme di transazioni per il 2018, caricato in una tabella denominata `Transactions`.

* Il campo della data fornito nel formato della variabile di sistema `DateFormat` (MM/GG/AAAA).

* La creazione di un campo, `transaction_date`, che restituisce una data nel formato MM/GG/AAAA.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Tabella dei risultati

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

Il campo `transaction_date` viene creato nell'istruzione di caricamento precedente utilizzando la funzione `makedate()` e passando i campi anno, mese e giorno come argomenti della funzione.

La funzione combina e converte questi valori in un campo data, restituendo i risultati nel formato della variabile di sistema `DateFormat`.

## Esempio 2 – DateFormat modificato

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

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Vengono utilizzati lo stesso set di dati e lo stesso scenario del primo esempio.

* La creazione di un campo, `transaction_date`, nel formato GG/MM/AAAA senza modificare la variabile di sistema `DateFormat`.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `transaction_year`

* `transaction_month`

* `transaction_day`

* `transaction_date`

Tabella dei risultati

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

In questo caso, la funzione `makedate()` è nidificata all'interno della funzione `date()`. Il secondo argomento della funzione `date()` imposta il formato dei risultati della funzione `makedate()` come GG/MM/AAAA.

## Esempio 3 - Esempio di oggetto grafico

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

#### Script di caricamento ed espressione del grafico

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

Lo script di caricamento contiene:

* Un set di dati contenente un insieme di transazioni per il 2018, caricato in una tabella denominata `Transactions`.

* Le date delle transazioni sono fornite in due campi: `year` e `month`.

Creare una misura dell'oggetto grafico, `transaction_date`, che restituisca una data nel formato MM/GG/AAAA.

Script di caricamento

```
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
];
```

Risultati

Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:

* `year`

* `month`

Per determinare il valore `transaction_date`, creare questa misura:

`=makedate(transaction_year,transaction_month)`

Tabella dei risultati

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

La misura `transaction_date` viene creata nell'oggetto grafico utilizzando la funzione `makedate()` e passando i campi anno e mese come argomenti della funzione.

La funzione combina quindi questi valori e il valore presunto del giorno, pari a 01. Questi valori vengono poi convertiti in un campo data, restituendo i risultati nel formato della variabile di sistema `DateFormat`.

## Esempio 4 – Scenario

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

#### Script di caricamento ed espressione del grafico

Panoramica

Creare un set di dati di calendario per l'anno solare 2022.

Script di caricamento

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

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

Risultati

Tabella dei risultati

| 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 ulteriori righe |

La funzione makedate() crea un valore di data per il 31 dicembre 2021. La funzione recno() fornisce il numero di record del record correntemente caricato nella tabella, a partire da 1. Pertanto, il primo record ha la data del 1° gennaio 2022. A ogni valore recno() successivo, la data viene incrementata di 1. Questa espressione è racchiusa in una funzione date() che converte il valore in una data. Questo processo viene ripetuto 400 volte dalla funzione autogenerate. Infine, sfruttando un caricamento precedente, è possibile utilizzare una condizione where per caricare solo le date a partire dall'anno 2022. Questo script genera un calendario contenente tutte le date del 2022.