Funções de Conversão de Tipo de Dado
Esta seção contém breves descrições das funções que convertem expressões de um tipo de dado para outro.
Função | O que ela faz |
---|---|
convert | Converte uma expressão de um tipo de dados suportado para outro. |
numbertostring | Converte uma expressão de número inteiro ou flutuante em uma expressão de cadeia utilizando uma máscara especificada. |
stringtotime | Converte uma expressão de cadeia em uma expressão de tempo, utilizando uma máscara especificada. |
timetostring | Converte uma expressão de tempo em uma expressão de cadeia utilizando uma máscara especificada. |
is_valid | Determina se a expressão especificada é um valor válido que pode ser convertido em um tipo de dados simples especificado. |
convert
convert (source_expr, type_name)
em que:Parâmetro | Descrição |
---|---|
source_expr | Uma expressão de qualquer tipo de dados suportado. Esta expressão é convertida para o tipo de dados especificado em type_name. |
type_name | O tipo de dados no qual source_expr é convertido. As entradas válidas são float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time e time[ ]. Observe que se type_name for seguido de colchetes ([ ]), então source_expr também deve ser uma matriz. Cada elemento na matriz é convertido para type_name pelas regras que se aplicam ao tipo de dados simples. |
Os resultados da função convert variam dependendo dos tipos de dados de source_exp e type_name.
Converter de Booleano
Se source_expr for do tipo Booleano, os resultados da função de conversão são os seguintes.
Converte de Booleano para... | Resultados |
---|---|
Booleano | Nenhuma mudança. |
float | Se a expressão Booleana for true, o resultado será 1. Se a expressão Booleana for false, o resultado será 0. |
integer | Se a expressão Booleana for true, o resultado será 1. Se a expressão Booleana for false, o resultado será 0. |
string | Se a expressão booleana for true, o resultado será "true"; se a expressão booleana for false, o resultado será "false". |
horário | Erro de sintaxe. |
Converter de flutuante
Se source_expr for do tipo flutuante, os resultados da função de conversão serão os seguintes.
Converter de flutuante para... | Resultados |
---|---|
Booleano | Se source_expr = 0, o resultado será false. Se source_expr = 1, o resultado será true. Se source_expr <> 0 ou 1, o resultado será um erro de sintaxe. |
float | Nenhuma mudança. |
integer | Converte a parte inteira de source_expr (ou seja, trunca todos todos números à direita da casa decimal). Ocorrerá um erro se o resultado não estiver dentro do intervalo para números inteiros. |
string | Resulta em uma cadeia de caracteres numéricos representando o flutuante. |
horário | Utiliza a parte de número inteiro de source_expr como o número de segundos a serem incluídos em 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Retorna o novo horário. UTC (Coordinated Universal Time) Antigamente conhecido como Horário de Greenwich (GMT), o UTC é o fuso horário de referência de padrão mundial. Por exemplo, convert (5.3, time) retorna 1/1/1970 00:00:05. |
Converter a partir de número inteiro
Converter de número inteiro para... | Resultados |
---|---|
Booleano | Se source_expr = 0, o resultado será false. Se source_expr = 1, o resultado será true. Se source_expr <> 0 ou 1, o resultado será um erro de sintaxe. |
float | Resulta no valor flutuante equivalente. |
integer | Nenhuma mudança. |
string | Resulta em uma cadeia de caracteres numéricos representando o número inteiro. |
horário | Utiliza source_expr como o número de segundos a serem incluídos em 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Retorna o novo horário. Por exemplo, convert (5, time) retorna 1/1/1970 00:00:05. |
Converter de cadeia
Se source_expr for do tipo cadeia, os resultados da função convert são os seguintes.
Converte de cadeia para... | Resultados |
---|---|
Booleano | Erro de sintaxe, a menos que source_expr = "true" ou source_expr = "false". Qualquer combinação de maiúsculas e minúsculas é aceitável. |
float | Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor flutuante. |
integer | Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor de número inteiro. |
string | Nenhuma mudança. |
horário | Erro de sintaxe, a menos que source_expr seja uma representação legítima de um valor de tempo e use o formato especificado na máscara data/tempo para o sistema de fluxo de trabalho. |
Converter de horário
Se source_expr for do tipo horário, os resultados da função de conversão são os seguintes.
Converter de horário para... | Resultados |
---|---|
Booleano | Erro de sintaxe. |
float | Retorna o número de segundos entre o horário de sistema atual e 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Por exemplo, se SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) retorna 28. Se o horário de sistema atual estiver configurado para um fuso horário diferente de UTC, a função convert faz o ajuste necessário. Por exemplo, há uma diferença de 8 horas entre o Horário Padrão do Pacífico (PST) e UTC; se SysTime = 1/1/1970 00:00:28 PST e o fuso horário local for PST, então convert(SysTime, float) retorna 28828.0. 8(horas) * 60(minutos) *60(segundos) + 28(segundos) |
integer | Retorna o número de segundos entre o horário de sistema atual e 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Por exemplo, se SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) retorna 28. Se o horário de sistema atual estiver configurado para um fuso horário diferente de UTC, a função convert faz o ajuste necessário. Por exemplo, há uma diferença de 8 horas entre PST e UTC; se SysTime = 1/1/1970 00:00:28 PST e o fuso horário local for Horário Padrão do Pacífico, então convert(SysTime, integer) retorna 28828. 8(horas) * 60(minutos) *60(segundos) + 28(segundos) |
string | Resulta em uma representação de cadeia da source_expr. Observe que esta sequência usa o formato especificado na máscara data/hora para o sistema de fluxo de trabalho. |
horário | Nenhuma alteração |
numbertostring
Esta função converte uma expressão flutuante ou de números inteiros em uma expressão de cadeia, utilizando o formato que você especifica. Utilize esta função quando desejar exibir um número em um determinado formato (como, por exemplo, $1.000.000). Também é possível usar a função numbertostring para arredondar números.
numbertostring (num_exp{, num_mask}opt)
em que:Parâmetro | Descrição |
---|---|
num_exp | Um expressão de tipo flutuante ou tipo número inteiro. |
num_mask | Uma máscara numérica que determina o formato de saída da função numbertostring. Apesar de opcional, observe que se você não inserir uma máscara numérica, a função numbertostring será equivalente à função convert. |
Máscara numérica
Uma máscara numérica é um modelo utilizado para formatar a saída da função numbertostring. Uma máscara numérica é uma expressão de cadeia contendo qualquer combinação válida dos seguintes componentes.
Componente | Significado |
---|---|
+ (mais) | Quando for o primeiro ou último componente na máscara, exibe o sinal do número. Quando for uma posição diferente da primeira ou da última, o sinal de mais será inserido na cadeia de saída exatamente onde você colocá-lo na máscara. Por exemplo: numbertostring (12345, "###+##") gera uma saída de 123+45 |
- (menos) | Quando for o primeiro ou último componente na máscara, exibe um sinal negativo se o número for negativo ou exibe um espaço se o número for positivo. Quando for uma posição diferente da primeira ou da última, o sinal de menos será inserido na cadeia de saída exatamente onde você colocá-lo na máscara. Por exemplo: numbertostring (123456789, "###-##-####") gera uma saída de 123-45-6789 |
# (sinal de número) | Exibe um dígito se ele for significativo. Quando a máscara contiver mais sinais # do que há de dígitos significativos, os sinais # mais à direita recebem os dígitos primeiro e os sinais # em excesso são preenchidos com brancos. |
0 (zero) | Exibe se um dígito é ou não significativo. Pode resultar em zeros à esquerda ou direita. |
. (decimal) | Determina o local do ponto decimal. Se não for especificado, o ponto decimal é assumido como estando à direita da máscara. O número é arredondado para caber na máscara. Apenas uma ponto decimal é permitido em uma máscara. |
Amostras de máscara numérica
A seguir é exibida a saída resultante quando a função numbertostring converte os seguintes números: 0, +29, -3344 e 77.88369. A saída é formatada de acordo com as máscaras numéricas mostradas.
Máscara | 0 | +29 | -3344 | 77.88369 |
---|---|---|---|---|
0000 | 0000 | 0029 | 3344 | 0078 |
#### | 29 | 3344 | 78 | |
$#,### | $ | $29 | $3,344 | $78 |
+#### | + | +29 | -3344 | +78 |
-#### | 29 | -3344 | 78 | |
####+ | + | 29+ | 3344- | 78+ |
####- | 29 | 3344- | 78 | |
##.## | . | 29. | Erro de tempo de execução | 77.88 |
Arredondando números
numbertostring (Number1, "#,###.###")
3,344.779
is_valid
is_valid (expr, type)
em que:Parâmetro | Descrição |
---|---|
expr | Qualquer expressão. |
type | Um tipo de dados simples (Booleano, flutuante, número inteiro, cadeia, horário). |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20,
integer)