# Date Функция скрипта и диаграммы

Date() преобразует формат выражения в значение даты, используя формат, указанный в системных переменных в скрипте загрузки данных, в операционной системе или в строке форматирования (если указана).

Синтаксис:

Date(number[, format])

Возвращаемые типы данных: двойное значение

Аргументы

| Аргумент | Описание |
| --- | --- |
| number | Число для изменения формата. |
| format | Строка, описывающая формат результирующей строки. Если строка формата отсутствует, формат даты устанавливается в системных переменных в скрипте загрузки данных или используются данные операционной системы.<br><br>Функция `Date` поддерживает много вариантов формата для различных структур дат, например:<br><br>​`DD/MM/YYYY`: ​день/месяц/год (например, 15/02/2022)<br><br>​`MM-DD-YYYY`: ​месяц-день-год с дефисами (например, 02-15-2022)<br><br>​`YYYY-MM-DD`: ​год-месяц-день, формат ISO (например, 2022-02-15)<br><br>​`D-MMM-YYYY`: ​день, короткое название месяца, год, с дефисами (например, 15-Feb-2022)<br><br>`​MMMM YYYY`: ​полное название месяца и год (например, February 2022)<br><br>​`MM/YYYY`: ​месяц и год (например, 02/2022)<br><br>​`DD MMMM YYYY`: ​день, полное название месяца и год (например, 15 February 2022) |

Пример: выражения диаграммы

| Пример | Результат |
| --- | --- |
| `Date( 35648 )` | Возвращает `97-08-06`, если параметр `DateFormat` равен `YY-MM-DD`. |
| `Date( 35648, 'YY.MM.DD' )` | Возвращает `97.08.06`, если параметр `DateFormat` равен `YY-MM-DD`. |
| `Date( '8/6/97', 'YY.MM.DD' )` | Возвращает `NULL`, если параметр `DateFormat` равен `YY-MM-DD`. |

## Пример. Основы использования функции Date

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

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `RowNo`
  * `InputDate`

* Переменная `DateFormat`, которая использует формат `YY-MM-DD`.

Скрипт загрузки

```
SET DateFormat='YY-MM-DD';
Example:
Load * inline [
RowNo, InputDate
1, 35648
2, 35648.375
3, 8/6/97
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* ` RowNo
                                       `

* `InputDate`

Создайте следующие меры:

* `=Date(InputDate)`, чтобы просмотреть значение в виде даты, отформатированной с использованием параметров переменной `DateFormat`.

* `=Date(InputDate, 'DD.MM.YYYY')`, чтобы просмотреть значение в виде даты, отформатированной с использованием формата, заданного в функции.

* `=Date(InputDate, 'YY.MM.DD')`, чтобы просмотреть значение в виде даты, отформатированной с использованием формата, заданного в функции.

* `=Num(InputDate)`, чтобы вернуть числовое значение даты.

Results table

| RowNo | InputDate | Date(InputDate) | Date(InputDate, 'DD.MM.YYYY') | Date(InputDate, 'YY.MM.DD') | Num(InputDate) |
| --- | --- | --- | --- | --- | --- |
| 1 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648 |
| 2 | 35648.375 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |
| 3 | 8/6/97 | - | - | - | - |

Результаты показывают, как функция `Date` может использоваться для отображения и форматирования дат. В этом примере `DateFormat` устанавливается как `YY-MM-DD` в скрипте загрузки. Система ожидает, что выражение для даты будет использовать этот формат. Видно, что значение для `InputDate` в строке 3 (`8/6/97`) не соответствует этому формату, поэтому система не распознает его как дату и возвращает `NULL`.

Измените параметр `DateFormat` в скрипте загрузки на `SET DateFormat='M/D/YY';` и перезагрузите данные. Теперь значение в строке 3 будет соответствовать ожидаемому формату. Система распознает его как действительную дату и отформатирует соответствующим образом. В следующей таблице показаны результаты с новой настройкой `DateFormat`.

Results table with variable statement `Set DateFormat='M/D/YY'`Set DateFormat='M/D/YY'

| RowNo | InputDate | Date(InputDate) | Date(InputDate, 'DD.MM.YYYY') | Date(InputDate, 'YY.MM.DD') | Num(InputDate) |
| --- | --- | --- | --- | --- | --- |
| 1 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648 |
| 2 | 35648.375 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |
| 3 | 35648 | 97-08-06 | 06.08.1997 | 97.08.06 | 35648.375 |

## Пример. Сценарий использования Date

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

#### Выражение диаграммы

Обзор

Набор данных содержит данные о продажах, в которых используется формат даты `MM-DD-YYYY`. Требуется использовать формат даты `DD/MM/YYYY`.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `Customer`
  * `SalesDate`
  * `Amount`

* Переменная `DateFormat`, которая использует формат `MM/DD/YYYY`.

Скрипт загрузки

```
SET DateFormat='MM/DD/YYYY';
Example:
Load * inline [
Customer, SalesDate, Amount
Customer A, 2/15/2024, 100008
Customer B, 9/30/2024, 12500
Customer C, 12/28/2024, 15000
];
```

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение:

* ` Customer
                                       `

Создайте следующие меры:

* `=Date(SalesDate ,'DD/MM/YYYY')`, чтобы просмотреть значение в виде даты, отформатированной с использованием формата, заданного в функции.

* `=Sum(Amount)`, чтобы вычислить итоговое значение стоимости продаж.

Results table

| Customer | Date(SalesDate ,'DD/MM/YYYY') | Sum(Amount) |
| --- | --- | --- |
| Customer A | 15/02/2024 | 100008 |
| Customer B | 30/09/2024 | 12500 |
| Customer C | 28/12/2024 | 15000 |

Посмотрев на результаты, можно увидеть, что хотя даты в наборе данных имеют один формат, функция `Date` позволяет представить эти даты в другом формате.