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

Date# оценивает выражение в качестве даты в формате, указанном во втором аргументе (если указан).

Синтаксис:

Date#(text[, format])

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

Аргументы

| Аргумент | Описание |
| --- | --- |
| text | Текстовая строка для оценки. |
| 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)<br><br>[Описания для форматов числа и времени](https://help.qlik.com/ru-RU/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Introduction/conventions-number-time-formats.htm) |

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

| Пример | Результат |
| --- | --- |
| ` Date#('8/7/97')  ` | Возвращает допустимую дату `8/7/97`, когда параметр `DateFormat` имеет значение `M/D/YY.`. |
| `Date#('21.10.2023', 'DD.MM.YYYY' )` | Возвращает допустимую дату `21.10.2023`, когда параметр date имеет значение `DD.MM.YYYY`. |
| `Date#('21.10.2023')` | Возвращает `NULL`, если параметр `DateFormat` равен `M/D/YY`. |

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

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

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

Обзор

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

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

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

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

  * `StringDate`

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

* Предшествующая загрузка, которая создает новое поле под именем `Date`. Функции `Date#` и `Num` используются для преобразования строки в дату, а затем возвращают значение в виде числа.

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

```
SET DateFormat='M/D/YY';
Example:
Load *,
Num(Date#(StringDate, 'D/M/YYYY')) as Date
;
LOAD * INLINE [
StringDate
13/12/2024
31/1/23
];
```

Результаты

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

* ` StringDate
                                       `

* `Date`

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

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

* `=IsNum(StringDate)`, чтобы проверить, что значение является строкой и не оценено как дата, потому что формат даты в значениях поля не соответствует системному параметру.

Results table

| StringDate | Date | Date(Date) | IsNum(StringDate) |
| --- | --- | --- | --- |
| 13/12/2024 | 45639 | 12/13/24 | 0 |
| 31/1/23 | 44957 | 1/31/23 | 0 |

Результаты показывают, что поле `Date` в столбце 2, созданное предшествующей загрузкой, преобразовало значения `StringDate` в дату, выраженную в виде числа. Функция формата `Date` в столбце 3 распознает значения `Date` как даты и форматирует их в соответствии с переменной `DateFormat` в скрипте загрузки.

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

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

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

Обзор

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

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

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

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

  * `Customer`
  * `BirthDate`

* Предшествующая загрузка, которая создает новое поле под именем `ParsedBirthDate`.

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

```
Example:
Load *,
Date#(BirthDate, 'MM.DD.YYYY') as ParsedBirthDate;
Load * inline [
Customer, BirthDate
Customer A, 08.25.2022
Customer B, 08.25.2022
Customer C, 08.25.2022
];
```

Результаты

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

* ` Customer
                                       `

* `BirthDate`

* `ParsedBirthDate`

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

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

Results table

| Customer | BirthDate | ParsedBirthDate | Date(ParsedBirthDate, 'DD/MM/YYYY') |
| --- | --- | --- | --- |
| Customer A | 08.25.2022 | 08.25.2022 | 25/08/2022 |
| Customer B | 06.29.2022 | 06.29.2022 | 29/06/2022 |
| Customer C | 05.31.2022 | 05.31.2022 | 31/05/2022 |

В этом примере мы видим, что в столбце 2 поле `BirthDate` рассматривается системой как текст. Функция `Date#`, использованная в предшествующей загрузке, преобразует `BirthDate` в распознаваемую дату в столбце 3, `ParsedBirthDate`. Функция формата `Date` в столбце 4 может затем отобразить значения `ParsedBirthDate` в формате `DD/MM/YYYY`.