# maketime - Função de script e de gráfico

Esta função retorna um momento calculado a partir da hora hh, do minuto mm e do segundo ss.

Sintaxe:

MakeTime(hh [ , mm [ , ss ] ])

Tipo de dados de retorno: dual

Argumentos

| Argumento | Descrição |
| --- | --- |
| hh | A hora como um inteiro. |
| mm | O minuto como um inteiro.<br><br>Se nenhum minuto for indicado, 00 será assumido. |
| ss | O segundo como um inteiro.<br><br>Se nenhum segundo for indicado, 00 será assumido. |

## Quando usar

A função `maketime()` normalmente seria usada no script para geração de dados para gerar um campo de hora. Às vezes, quando o campo de hora é derivado do texto de entrada, essa função pode ser usada para construir a hora usando seus componentes.

Estes exemplos usam o formato de hora `h:mm:ss`. O formato de hora é especificado no comando `SET TimeFormat` na parte superior do seu script de carregamento de dados. Altere o formato nos exemplos para atender às suas necessidades.

Exemplos de funções

| Exemplo | Resultado |
| --- | --- |
| `maketime(22)` | Retorna 22:00:00. |
| `maketime(22, 17)` | Retorna 22:17:00. |
| `maketime(22,17,52 )` | Retorna 22:17:52. |

## Configurações regionais

A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução `SET DateFormat` no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos.

As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.

## Exemplo 1: maketime()

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações que é carregado em uma tabela denominada `Transactions`

* Os tempos de transação são fornecidos em três campos: `hours`, `minutes` e `seconds`.

* A criação de um campo, `transaction_time`, que retorna a hora no formato da `variável` de sistema TimeFormat.

Script de carregamento

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        maketime(transaction_hour, transaction_minute, transaction_second) as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Tabela de resultados

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 AM |
| 6 | 32 | 07 | 6:32:07 AM |
| 9 | 25 | 23 | 9:25:23 AM |
| 12 | 09 | 16 | 12:09:16 PM |
| 17 | 55 | 22 | 5:55:22 PM |
| 18 | 43 | 30 | 6:43:30 PM |
| 21 | 43 | 41 | 9:43:41 PM |

O campo `transaction_time` é criado na instrução de carregamento anterior usando a função `maketime()` e informando os campos de hora, minuto e segundo como argumentos da função.

Em seguida, a função combina e converte esses valores em um campo de tempo, retornando os resultados no formato de tempo da variável de sistema `TimeFormat`.

## Exemplo 2: função time()

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* O mesmo conjunto de dados e cenário do primeiro exemplo.

* A criação de um campo, `transaction_time`, que nos permitirá mostrar os resultados no formato de 24 horas sem modificar a variável de sistema `TimeFormat`.

Script de carregamento

```
SET TimeFormat='h:mm:ss TT';

Transactions:
    Load
        *,
        time(maketime(transaction_hour, transaction_minute, transaction_second),'h:mm:ss') as transaction_time
        ; 
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_second, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 30, 12423.56, 23, 2038593
3751, 6, 32, 07, 5356.31, 6, 203521
3752, 12, 09, 16, 15.75, 1, 5646471
3753, 21, 43, 41, 7, 3036491
3754, 17, 55, 22, 21484.21, 1356, 049681
3756, 2, 52, 22, -59.18, 2, 2038593
3757, 9, 25, 23, 3177.4, 21, 203521
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `transaction_hour`

* `transaction_minute`

* `transaction_second`

* `transaction_time`

Tabela de resultados

| transaction\_hour | transaction\_minute | transaction\_second | transaction\_time |
| --- | --- | --- | --- |
| 2 | 52 | 22 | 2:52:22 |
| 6 | 32 | 07 | 6:32:07 |
| 9 | 25 | 23 | 9:25:23 |
| 12 | 09 | 16 | 12:09:16 |
| 17 | 55 | 22 | 17:55:22 |
| 18 | 43 | 30 | 18:43:30 |
| 21 | 43 | 41 | 21:43:41 |

Nesse caso, a função `maketime()` está aninhada dentro da função `time()`. O segundo argumento da função `time()` define o formato dos resultados da função `maketime()` como a `h:mm:ss` necessária.

## Exemplo 3: Exemplo de objeto de gráfico

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

#### Script de carregamento e expressão de gráfico

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Um conjunto de dados contendo um conjunto de transações que é carregado em uma tabela denominada `Transactions`.

* Os tempos de transação são fornecidos em dois campos: `hours` e `minutes`.

* A criação de um campo, `transaction_time`, que retorna a hora no formato da variável de sistema `TimeFormat`.

Crie uma medida de objeto de gráfico, `transaction_time`, que retorna uma hora no formato `h:mm:ss TT`.

Script de carregamento

```
SET TimeFormat='h:mm:ss TT';

Transactions:
Load * Inline [
transaction_id, transaction_hour, transaction_minute, transaction_amount, transaction_quantity, customer_id
3750, 18, 43, 12423.56, 23, 2038593
3751, 6, 32, 5356.31, 6, 203521
3752, 12, 09, 15.75, 1, 5646471
3753, 21, 43, 7, 3036491
3754, 17, 55, 21484.21, 1356, 049681
3756, 2, 52, -59.18, 2, 2038593
3757, 9, 25, 3177.4, 21, 203521
];
```

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `transaction_hour`

* `transaction_minute`

Para calcular a `transaction_time`, crie esta medida:

`=maketime(transaction_hour,transaction_minute)`

Tabela de resultados

| transaction\_hour | transaction\_minute | =maketime(transaction\_hour, transaction\_minute) |
| --- | --- | --- |
| 2 | 52 | 2:52:00 AM |
| 6 | 32 | 6:32:00 AM |
| 9 | 25 | 9:25:00 AM |
| 12 | 09 | 12:09:00 PM |
| 17 | 55 | 5:55:00 PM |
| 18 | 43 | 6:43:00 PM |
| 21 | 43 | 9:43:00 PM |

A medida `transaction_time` é criada no objeto de gráfico usando a função `maketime()` e informando os campos de hora e minuto como argumentos da função.

A função então combina esses valores, e os segundos são considerados 00. Esses valores são então convertidos em um campo de hora, retornando os resultados no formato da variável de sistema `TimeFormat`.

## Exemplo 4: Cenário

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

#### Script de carregamento e expressão de gráfico

Visão geral

Crie um conjunto de dados do calendário para o mês de janeiro de 2022, dividido em incrementos de oito horas.

Script de carregamento

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';

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

Left join(tmpCalendar)
load
	maketime((recno()-1)*8,00,00) as time
autogenerate 3;

Calendar:
load
	timestamp(date + time) as timestamp
resident tmpCalendar;

drop table tmpCalendar;
```

Resultados

Tabela de resultados

| carimbo de data/hora |
| --- |
| 1/1/2022 12:00:00 AM |
| 1/1/2022 8:00:00 AM |
| 1/1/2022 4:00:00 PM |
| 1/2/2022 12:00:00 AM |
| 1/2/2022 8:00:00 AM |
| 1/2/2022 4:00:00 PM |
| 1/3/2022 12:00:00 AM |
| 1/3/2022 8:00:00 AM |
| 1/3/2022 4:00:00 PM |
| 1/4/2022 12:00:00 AM |
| 1/4/2022 8:00:00 AM |
| 1/4/2022 4:00:00 PM |
| 1/5/2022 12:00:00 AM |
| 1/5/2022 8:00:00 AM |
| 1/5/2022 4:00:00 PM |
| 1/6/2022 12:00:00 AM |
| 1/6/2022 8:00:00 AM |
| 1/6/2022 4:00:00 PM |
| 1/7/2022 12:00:00 AM |
| 1/7/2022 8:00:00 AM |
| 1/7/2022 4:00:00 PM |
| 1/8/2022 12:00:00 AM |
| 1/8/2022 8:00:00 AM |
| 1/8/2022 4:00:00 PM |
| 1/9/2022 12:00:00 AM |
| Mais de 68 linhas |

A função autogenerate inicial cria um calendário contendo todas as datas de janeiro em uma tabela denominada tmpCalendar.

Uma segunda tabela, contendo três registros, é criada. Para cada registro, recno() – 1 é obtido (valores 0, 1, 2), e o resultado é multiplicado por 8. Como resultado, isso gera os valores 0, 8, 16. Esses valores são usados como o parâmetro de hora em uma função maketime(), com valores de minuto e segundo de 0. Como resultado, a tabela contém três campos de horário: 12:00:00 AM, 8:00:00 AM e 4:00:00 PM.

Essa tabela está unida à tabela tmpCalendar. Como não há campos correspondentes entre as duas tabelas para a união, as linhas de tempo são adicionadas a cada linha de data. Como resultado, cada linha de data agora é repetida três vezes com cada valor de tempo.

Finalmente, a tabela de calendário é criada a partir de um carregamento residente da tabela tmpCalendar. Os campos de data e hora são concatenados e agrupados na função timestamp() para criar o campo de carimbo de data/hora.

A tabela tmpCalendar é então descartada.