SQLShack (Français)

Classé dans : Articles | 0

Dans cet article, nous discuterons et apprendrons les bases et tous les détails sur les opérations de conversion de type de données SQL Server et nous examinerons également les fonctions intégrées SQL CONVERT et TRY_CONVERT avec divers exemples. Dans un premier temps, nous expliquerons et clarifierons la syntaxe de la fonction de conversion SQL, puis nous apprendrons comment convertir les types de données numériques et de date/heure en données de caractères.,

implicite vs explicite

le processus de changement de type de données d’une valeur en un autre type de données est appelé conversion de type de données et presque tous les langages de programmation incluent un certain type de fonctions ou de fonctionnalités de conversion de données. Lorsque nous tournons notre point de vue vers SQL Server afin de discuter des détails des opérations de conversion de données SQL, nous pouvons d’abord séparer le processus de conversion de données en deux parties; conversions implicites et explicites., La conversion implicite est effectuée par SQL Server pour les besoins internes et vous pouvez également trouver des détails supplémentaires dans l’article conversion implicite dans SQL Server. La conversion explicite est effectuée explicitement par un programmeur ou un administrateur de base de données et en même temps, ce processus de conversion est effectué à l’aide de toute fonction de conversion de données. Dans cet article, nous nous concentrerons particulièrement sur la fonction SQL CONVERT. Cette fonction permet de convertir un type de données à un autre type de données spécifié. Dans un premier temps, nous allons interpréter la syntaxe de la fonction SQL CONVERT.,

Syntaxe

1
CONVERT (type de données (longueur), d’expression, de style)

data_type: Ce paramètre définit le type de données cible qui doit être convertie. le paramètre data_type peut prendre ces types de données en entrée qui sont affichés dans la liste de tableaux ci-dessous.

length: Il s’agit d’un paramètre optionnel qui spécifie la longueur du type de données cible., La valeur par défaut de ce paramètre est 30.

expression: ce paramètre spécifie la valeur que nous voulons convertir en un autre type de données.

style: il s’agit d’un paramètre entier qui spécifie le style de sortie de la valeur convertie. Cette valeur est plus utile pour dater les formats de type de données.

Maintenant, nous allons renforcer cette théoriques avec plusieurs échantillons.

Convertir un Float en Int

Dans cet exemple, nous allons convertir un type de données float entier., Dans la requête suivante, nous déclarerons une variable que le type de données est float, puis nous utiliserons la fonction SQL CONVERT afin de convertir la valeur float en entier, de sorte que nous effectuerons une opération de conversion de données.,

1
2
3
4
5
6

–déclaration d’une variable de type float
en INDIQUANT @FloatVal en tant QUE Float
–Attribuer un float valeur de la variable
SET @FloatVal = 1132.,12345
– Convertir une valeur float en int
SELECT CONVERT(int, @FloatVal) COMME ConvertedValue

Convertir un Float en Varchar

Dans cet exemple, nous allons convertir un float valeur de valeur varchar. Cet exemple est très similaire au précédent mais la seule différence est que nous allons convertir la valeur flottante en varchar.,

1
2
3
4
5
6

–déclaration d’une variable de type float
en INDIQUANT @FloatVal en tant QUE Float
–Attribuer un float valeur de la variable
SET @FloatVal = 1132.,12345
– Convertir une valeur réel de type varchar
SELECT CONVERT(varchar, @FloatVal) COMME ConvertedValue

Dans l’exemple suivant, nous n’enverrons pas de valeur de paramètre longueur de SQL CONVERTIR en fonction de la longueur de paramètre doit être défini sur la valeur par défaut. Comme nous l’avons déjà noté dans l’explication de syntaxe de la fonction SQL CONVERT, cette valeur par défaut est 30 et nous allons maintenant le prouver., Dans la requête suivante, nous allons créer une table temporaire et insérer une valeur convertie dans cette table, puis nous analyserons la structure de données de cette table.,

1
2
3
4
5
6
7
8
9
10

DROP TABLE if EXISTS TestConvertedTable
–déclaration d’une variable de type float
en INDIQUANT @FloatVal en tant QUE Float
–Attribuer un float valeur de la variable
SET @FloatVal = 1132.,12345
– Convertir une valeur réel de type varchar
SELECT CONVERT(varchar, @FloatVal) COMME ConvertedValue EN TestConvertedTable
— Analyser la table temporaire
SELECT TABLE_NAME COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.,Colonnes où TABLE_NAME=’TestConvertedTable’

comme vous pouvez le voir dans l’image ci-dessus, le type de données float a été converti en valeur varchar et nous n’avons pas SQL Server a appliqué la valeur par défaut du paramètre length à 30.

maintenant, nous allons définir le paramètre length de la fonction SQL CONVERT, puis revérifier la longueur du type de données varchar.,

1
2
3
4
5
6
7
8
9
10

DROP TABLE if EXISTS TestConvertedTable
–déclaration d’une variable de type float
en INDIQUANT @FloatVal en tant QUE Float
–Attribuer un float valeur de la variable
SET @FloatVal = 1132.,12345
Convert Convert float value to varchar
SELECT CONVERT(varchar(20), @FloatVal) AS ConvertedValue INTO TestConvertedTable
— Analyser la table temporaire
SELECT TABLE_NAME,COLUMN_NAME,DATA_TYPE,CHARACTER_MAXIMUM_LENGTH
FROM INFORMATION_SCHEMA.COLONNES OÙ TABLE_NAME= ‘TestConvertedTable’

Convertir de l’argent en Varchar

Le type de données SQL Server money permet de stocker des valeurs monétaires., Nous pouvons définir des valeurs monétaires précédées d’un symbole monétaire, mais SQL Server ne stocke pas les symboles monétaires ou les données liées au symbole monétaire. Dans la requête suivante, nous allons convertir le type de données money en varchar et nous utiliserons également le paramètre style de la fonction SQL convert. À l’aide du paramètre style, nous pouvons déterminer les délimiteurs de virgules et la longueur du chiffre décimal droit. Le graphique suivant montre la valeur du paramètre style et la sortie de la fonction SQL CONVERT.,

Value

Style Parameter

Comma Delimiter

Right decimal digit

Output

no

yes

4,936.,56

aucun

Convertir le Flotteur et le Réel Varchar

Float et les types de données réelles sont approximatives types de données numériques dans SQL Server et cela signifie que ces types de données ne stockez pas des valeurs exactes. Ils stockent une approximation très proche de la valeur stockée. Maintenant, nous allons expliquer la conception approximative du type de données numériques., Dans la requête suivante, nous allons créer une table qui a deux colonnes et les types de données de ces colonnes sont float et real, puis nous allons insérer des valeurs numériques. En fait, nous nous attendions à des nombres à deux chiffres dans la table, mais le type de données real et float stocke les valeurs les plus proches des valeurs attendues.

le tableau ci-dessous est cité dans les documents Microsoft et ce tableau explique le style de conversion des types de données float et real En données textuelles.,

astuce: la notation scientifique est une méthode spéciale pour exprimer un très grand nombre ou un petit nombre, principalement utilisée en science.

Valeur

Sortie

0 (par défaut)

Un maximum de 6 chiffres. Utilisé en notation scientifique, le cas échéant.

Toujours à 8 chiffres. Toujours utilisé en notation scientifique.

Toujours 16 chiffres. Toujours utilisé en notation scientifique.

Toujours 17 chiffres. Utiliser pour la conversion sans perte., Avec ce style, chaque valeur flottante ou réelle distincte est garantie de se convertir en une chaîne de caractères distincte.

montrons maintenant un exemple qui inclut tous les styles de conversion de données selon ce tableau.

comme vous pouvez le voir ci-dessus, le jeu de résultats montre que le paramètre style modifie la sortie de la fonction SQL CONVERT.

convertir la Date/heure en Varchar

Les formats de Date/heure peuvent varier en fonction des paramètres régionaux et pour cette raison, nous avons besoin de différents formats pour représenter la date / heure., Imaginez que vous avez une application et que les utilisateurs de différents pays utilisent cette application, donc si quelqu’un connecte cette application aux États-Unis, vous devez représenter la date au format mois/jour/année. De l’autre côté, un autre utilisateur connecte cette application au Royaume-Uni et vous devez représenter le format de date au format jour/mois/année. Dans ce cas, nous devons déterminer la date/heure représentant le style en fonction du réglage de la date/heure locale. la procédure stockée sp_helplanguage renvoie les langues prises en charge avec des informations détaillées dans SQL Server.,

De plus, nous pouvons déterminer la langue de la session indiquée et ainsi adapter les fonctions date/heure à une langue particulière. Dans la requête suivante, nous allons définir la langue sur Polonais, puis nous pouvons voir le changement du nom du mois et du jour en fonction des paramètres régionaux polonais.

Conseil: En règle générale, si vous concevez une base de données d’application multinationale, stockez toujours l’heure UTC (Temps universel coordonné) dans une colonne afin d’éviter les problèmes de date / heure dus aux paramètres locaux.,résultat à la norme allemande, nous pouvons utiliser la requête suivante:

1
sélectionnez GETDATE() comme ,convert(varchar(50),GETDATE(),104) comme

dans le tableau de triche suivant, vous pouvez trouver chaque combinaison d’utilisation du paramètre de style et du format de sortie entier de la fonction SQL Convert () pour les conversions de données Date/heure en caractères.,

ow, nous allons démontrer cette table de triche avec toutes les combinaisons pour la fonction SQL GETDATE afin que nous puissions comprendre l’influence du paramètre style sur les sorties de la fonction SQL CONVERT.

maintenant, nous allons mentionner quelques points que nous devons considérer sur l’opération de conversion date/heure. Au début de cette section, nous avons parlé des options et des paramètres de langue SQL Server, donc si nous modifions le paramètre de langue, cela affecte certaines sorties de style de conversion date/heure., Dans l’exemple ci-dessous, nous voulons convertir les résultats de la fonction GETDATE afin que ce paramètre affecte directement le nom abrégé du mois de la fonction SQL CONVERT.

une Autre considération est sur le format d’année. Dans certaines circonstances, nous pouvons utiliser le paramètre style qui ne renvoie pas le format century, mais ce cas peut provoquer des situations confuses. Comme dans l’exemple suivant, nous avons deux dates différentes et ces dates stockent également des années différentes, mais la sortie de la fonction SQL CONVERT est similaire.,

TRY_CONVERT ()

la fonction SQL TRY_CONVERT est une forme avancée de la fonction SQL CONVERT. Le principal avantage de la fonction SQL TRY_CONVERT est de protéger contre les erreurs de conversion de données lors de l’exécution de la requête. Il est possible que nous puissions rencontrer des erreurs sur le processus de conversion de données avec L’opération secrète SQL en raison de données non appropriées ou sales. Cependant, la fonction SQL TRY_CONVERT nous permet d’éviter ce type d’erreurs. Dans le même temps, il n’y a pas de différences de syntaxe entre les fonctions SQL CONVERT et TRY_CONVERT., La fonction SQL TRY_CONVERT renvoie la valeur NULL si la conversion de données génère une erreur. Dans l’exemple ci-dessous, nous allons d’abord essayer de convertir la valeur de caractère en un entier via la fonction de conversion SQL et cette opération renverra une erreur.,

1
SÉLECTIONNEZ CONVERTIR(INT,’AnyString’) COMME ConvertFunc

en revanche, si l’on utilise le SQL TRY_CONVERT fonction au lieu de SQL fonction CONVERT pour la même requête, il sera de retour la valeur NULL.,

1
SELECT TRY_CONVERT(INT,’AnyString’) AS ConvertFunc

Conclusion

In this article, we thoroughly reviewed the SQL CONVERT function syntax, details and significant considerations. Data conversion processes have wide usage, in practice, therefore in this article we demonstrated various examples., Je vous recommande d’être prudent avec la conversion de type de données date/heure si votre base de données est utilisée dans différents pays. De même, le formatage des types de données date/heure est un autre point important.

  • Auteur
  • Derniers Posts
Esat Erkec est un spécialiste de SQL Server qui a commencé sa carrière à 8 ans en tant que Développeur de Logiciels. Il est un expert en solutions certifiées Microsoft SQL Server.,
La majeure partie de sa carrière a été axée sur L’Administration et le développement de bases de données SQL Server. Il s’intéresse actuellement à l’administration de bases de données et à la Business Intelligence. Vous pouvez le trouver sur LinkedIn.,
Afficher tous les articles de l’Esat Erkec

Derniers messages de l’Esat Erkec (voir tous)
  • prise en main avec la Programmation SQL – 3 février 2021
  • Comment lire un plan d’exécution avec tous les détails – le 28 janvier 2021
  • SQL SELECT TOP énoncé de présentation et exemples – 25 janvier 2021

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *