Fonctions de conversion de type de données
Cette section contient de brèves descriptions des fonctions qui convertissent les expressions d'un type de données dans un autre.
Fonction | Action |
---|---|
convert | Convertit une expression d'un type de données pris en charge vers un autre type de données. |
numbertostring | Convertit une expression de valeur entière ou de valeur flottante en une expression de chaîne avec un masque spécifié. |
stringtotime | Convertit une expression de chaîne en expression de temps avec un masque spécifié. |
timetostring | Convertit une expression de temps en expression de chaîne avec un masque spécifié. |
is_valid | Indique si l'expression spécifiée est une valeur valide qui peut être convertie dans le type de données simple spécifié. |
convert
convert (source_expr, type_name)
où :Paramètre | Description |
---|---|
source_expr | Expression utilisant n'importe lequel des types de données pris en charge. Cette expression est convertie dans le type de données indiqué dans type_name. |
type_name | Indique le type de données vers lequel est convertie l'expression indiquée par source_expr. Les entrées valides sont float, float[ ], integer, integer[ ], string, string[], Boolean, Boolean[ ], time et time[ ]. Notez que si type_name est suivi de crochets ([ ]), source_expr doit être un tableau. Chaque élément du tableau est converti dans le type de données indiqué par type_name par les règles qui s'appliquent au type de données simple. |
Les résultats de la fonction convert varient selon les types de données des variables source_exp et type_name.
Conversion d'une valeur booléenne
Si l'expression source_expr est de type booléen, les résultats de la fonction convert se présentent comme suit :
Conversion du type booléen vers... | Résultats |
---|---|
booléen | Pas de modification |
flottant | Si l'expression booléenne renvoie true, le résultat est 1. Dans le cas contraire, le résultat est 0. |
entier | Si l'expression booléenne renvoie true, le résultat est 1. Dans le cas contraire, le résultat est 0. |
chaîne | Si l'expression booléenne renvoie true, le résultat est "true". Dans le cas contraire, le résultat est "false". |
temporel | Erreur de syntaxe |
Conversion d'une valeur flottante
Si l'expression source_expr est de type flottant, les résultats de la fonction convert se présentent comme suit :
Conversion du type flottant vers... | Résultats |
---|---|
booléen | Si source_expr = 0, le résultat est false. Si source_expr = 1, le résultat est true. Si source_expr <> 0 ou 1, une erreur de syntaxe se produit. |
flottant | Pas de modification |
entier | Convertit la partie entière de source_expr (tronque tous les chiffres situés à droite du séparateur décimal). Une erreur se produit si le résultat sort de l'intervalle d'entiers admis. |
chaîne | Génère une chaîne de caractères numériques représentant la valeur flottante. |
temporel | Utilise la partie entière de source_expr pour identifier le nombre de secondes à ajouter à 1/1/1970 00:00:00 UTC (Coordinated Universal Time) et renvoie la nouvelle heure. Le temps UTC (Coordinated Universal Time) était autrefois appelé Heure GMT (Greenwich Mean Time). UTC est le fuseau horaire de référence mondiale standard. Par exemple, l'expression convert (5.3, time) renvoie 1/1/1970 00:00:05. |
Conversion à partir d'un entier
Convertir d'entier vers... | Résultats |
---|---|
booléen | Si source_expr = 0, le résultat est false. Si source_expr = 1, le résultat est true. Si source_expr <> 0 ou 1, une erreur de syntaxe se produit. |
flottant | Donne la valeur flottante équivalente. |
entier | Pas de modification |
chaîne | Donne une chaîne de caractères numériques représentant l'entier. |
temporel | Utilise source_expr pour identifier le nombre de secondes à ajouter à 1/1/1970 00:00:00 UTC (Coordinated Universal Time) et renvoie la nouvelle heure. Par exemple, l'expression convert (5, time) renvoie 1/1/1970 00:00:05. |
Conversion à partir d'une chaîne
Si l'expression source_expr est de type chaîne, les résultats de la fonction convert se présentent comme suit :
Conversion du type chaîne vers... | Résultats |
---|---|
booléen | Erreur de syntaxe, sauf si source_expr = "true" ou que source_expr = "false". (Toutes les combinaisons de majuscules et minuscules sont acceptables.) |
flottant | Erreur de syntaxe, sauf si source_expr est une représentation valide d'une valeur flottante. |
entier | Erreur de syntaxe, sauf si source_expr est une représentation valide d'une valeur entière. |
chaîne | Pas de modification |
temporel | Erreur de syntaxe, même si source_expr est une représentation valide d'une valeur temporelle et utilise le format spécifié dans le masque date/heure du système de flux de travaux. |
Conversion d'une valeur de temps
Si source_expr contient une valeur temporelle, la fonction convert donne les résultats suivants :
Conversion du type temps vers... | Résultats |
---|---|
booléen | Erreur de syntaxe |
flottant | Renvoie le nombre de secondes d'écart entre l'heure système courante et l'horodatage 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Par exemple, si SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, float) renvoie la valeur 28. Si l'heure système courante est réglée sur un autre fuseau horaire que UTC, la fonction convert fait l'ajustement nécessaire. Par exemple, il existe un écart de 8 heures entre l'heure PST (Heure standard du Pacifique) et l'heure UTC (Temps Universel Coordonné) ; si SysTime = 1/1/1970 00:00:28 PST et que le fuseau horaire local est l'heure PST, l'expression convert(SysTime, float) renvoie la valeur 28828.0. 8(hours) * 60(minutes) *60(seconds) + 28(seconds) |
entier | Renvoie le nombre de secondes d'écart entre l'heure système courante et l'horodatage 1/1/1970 00:00:00 UTC (Coordinated Universal Time). Par exemple, si SysTime = 1/1/1970 00:00:28 UTC, convert (SysTime, integer) renvoie la valeur 28. Si l'heure système courante est réglée sur un autre fuseau horaire que UTC, la fonction convert fait l'ajustement nécessaire. Par exemple, il existe un écart de 8 heures entre l'heure PST et l'heure UTC ; Si SysTime = 1/1/1970 00:00:28 PST et que le fuseau horaire local est l'heure PST, l'expression convert(SysTime, integer) renvoie la valeur 28828. 8(hours) * 60(minutes) *60(seconds) + 28(seconds) |
chaîne | Renvoie une chaîne représentant source_expr. Notez que cette chaîne utilise le format spécifié dans le masque de date/heure défini pour le système de flux de travaux. |
temporel | Pas de changement |
numbertostring
Cette fonction convertit une expression flottante ou entière en une expression de chaîne avec un format spécifié. Utilisez cette fonction pour afficher un nombre dans un certain format (par exemple, $1,000,000). Vous pouvez également utiliser la fonction numbertostring pour arrondir des nombres.
numbertostring (num_exp{, num_mask}opt)
où :Paramètre | Description |
---|---|
num_exp | Expression de type flottant ou entier. |
num_mask | Masque numérique qui détermine le format de sortie de la fonction numbertostring. Si vous n'indiquez pas de masque numérique, la fonction numbertostring est équivalente à la fonction convert. |
Masque numérique
Un masque numérique est un modèle utilisé pour mettre en forme le résultat de la fonction numbertostring. Un masque numérique est une expression de chaîne qui contient une combinaison valide de composants.
Composant | Signification |
---|---|
+ (plus) | S'il est inséré comme premier ou dernier composant du masque, affiche le signe du nombre. Quand il occupe une autre position que la première ou la dernière, le signe plus est inséré dans la chaîne de sortie exactement là où il figure dans le masque. Par exemple : numbertostring (12345, "###+##") produit le résultat 123+45 |
- (moins) | S'il est inséré comme premier ou dernier composant du masque, affiche un signe moins si le nombre est négatif ou affiche un espace si le nombre est positif. Quand il occupe une autre position que la première ou la dernière, le signe moins est inséré dans la chaîne de sortie exactement là où il figure dans le masque. Par exemple : numbertostring (123456789, "###-##-####") produit le résultat 123-45-6789 |
# (signe dièse) | Affiche un chiffre s'il est significatif. Quand le masque contient plus de signes # qu'il n'existe de chiffres significatifs, les signes # les plus à droite reçoivent des chiffres en premier et les signes # surnuméraires sont remplis avec des blancs. |
0 (zéro) | Affiche un chiffre, qu'il soit significatif ou pas. Cela peut donner des zéros de fin ou en tête. |
. (point décimal) | Détermine l'emplacement du séparateur décimal (point). En l'absence d'indication, le séparateur décimal est réputé se trouver à l'extrémité droite du masque. Le nombre est arrondi pour tenir dans le format du masque. Il n'est admis qu'un seul séparateur décimal dans un masque. |
Exemples de masques numériques
Voici les résultats obtenus quand la fonction numbertostring convertit les nombres suivants : 0, +29, -3344 et 77.88369. Le résultat est mis en forme avec les masques numériques indiqués.
Masque | 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. | Erreur d'exécution | 77.88 |
Arrondissement des nombres
numbertostring (Number1, "#,###.###")
3,344.779
is_valid
is_valid (expr, type)
où :Paramètre | Description |
---|---|
expr | Toute expression. |
type | Type de données simple (booléen, flottant, entier, chaîne, temps) |
is_valid (str, Boolean)
is_valid ("1.2.3", float)
is_valid (1e20, integer)