CAST et CONVERT (SQL Server Compact)

Convertit explicitement une expression d'un type de données en un autre. CAST est une variante syntaxique de CONVERT.

Syntaxe

Syntax for CAST:
CAST ( expression AS data_type [ (length ) ])
Syntax for CONVERT:
CONVERT ( data_type [ ( length ) ] ,expression [ ,style ] )

Arguments

  • data_type
    Le type de données cible fourni par le système est bigint. Les types de données définis par l'utilisateur ne peuvent pas être utilisés. Pour plus d'informations sur les types de données disponibles, consultez Types de données.

  • Length
    Paramètre facultatif de type de données nchar, nvarchar, char, varchar, binary ou varbinary.

  • Expression
    Toute expression SQL Server Compact valide. Pour plus d'informations, consultez Expressions (SQL Server Compact).

  • Style
    Style de format de date utilisé pour convertir des données datetime ou smalldatetime en données de caractères (types de données nchar, nvarchar, char, varchar, nchar ou nvarchar) ou format de chaîne utilisé pour convertir des données float, real, money ou smallmoney en données de caractères (types de données nchar, nvarchar, char, varchar, nchar ou nvarchar). Si style a pour valeur NULL, le résultat renvoyé a également pour valeur NULL.

    Pour plus d'informations, consultez la section « Notes », plus loin dans cette rubrique.

Notes

SQL Server Compact prend en charge le format de date en style arabe, à l'aide de l'algorithme koweïtien.

Dans le tableau ci-après, les deux colonnes de gauche représentent les valeurs de style pour la conversion de données datetime ou smalldatetime en données de caractères. Ajoutez 100 à une valeur de style pour obtenir une année à quatre chiffres incluant le siècle (yyyy).

Sans siècle (yy)

Avec siècle (yyyy)

Standard

Entrée/Sortie**

-

0 ou 100 (*)

Par défaut

mon dd yyyy hh:mi AM (ou PM)

1

101

États-Unis

mm/dd/yyyy

2

102

ANSI

yy.mm.dd

3

103

Anglais/Français

dd/mm/yy

4

104

Allemand

dd.mm.yy

5

105

Italien

dd-mm-yy

6

106

-

dd mon yy

7

107

-

Mon dd, yy

8

108

-

hh:mm:ss

-

9 ou 109 (*)

Par défaut + millisecondes

mon dd yyyy hh:mi:ss:mmm AM (ou PM)

10

110

États-Unis

mm-dd-yy

11

111

JAPON

yy/mm/dd

12

112

ISO

Yymmdd

-

13 ou 113 (*)

Par défaut Europe + millisecondes

dd mon yyyy hh:mm:ss:mmm (24h)

14

114

-

hh:mi:ss:mmm (24h)

-

20 ou 120 (*)

Canonique ODBC

yyyy-mm-dd hh:mi:ss (24h)

-

21 ou 121 (*)

Canonique ODBC (avec millisecondes)

yyyy-mm-dd hh:mi:ss.mmm (24h)

-

126(***)

ISO8601

yyyy-mm-ddThh:mm:ss.mmm (sans espace)

-

130*

Calendrier islamique****

dd mon yyyy hh:mi:ss:mmm AM

-

131*

Calendrier islamique****

dd/mm/yy hh:mi:ss:mmm AM

* Les valeurs par défaut (style 0 ou 100, 9 ou 109, 13 ou 113, 20 ou 120 et 21 ou 121) renvoient toujours le siècle (yyyy).

** Entrée pour une conversion en données datetime. Sortie pour une conversion en données de caractères.

*** Conçu pour une utilisation XML. Pour une conversion de données datetime ou smalldatetime en données character, le format de sortie est tel que le décrit le tableau. Pour une conversion de données float, money ou smallmoney en données character, le format de sortie est équivalent à style 2. Pour une conversion de données real en données character, le format de sortie est équivalent à style 1.

****Le calendrier islamique (Hijri) est un système de calendrier présentant plusieurs variantes, parmi lesquelles SQL Server Compact utilise l'algorithme koweïtien.

Le tableau ci-après indique les valeurs de style pour la conversion de données float ou real en données de caractères.

Valeur

Résultat

0 (par défaut)

Six chiffres maximum. Utilisation en notation scientifique, le cas échéant.

1

Toujours huit chiffres. Utilisation systématique en notation scientifique.

2

Toujours 16 chiffres. Utilisation systématique en notation scientifique.

Dans le tableau ci-après, la colonne de gauche représente la valeur de style pour la conversion de données money ou smallmoney en données de caractères.

Valeur

Résultat

0 (par défaut)

Aucun point à gauche de la décimale et deux chiffres à droite de la virgule. Example : 4235.98.

1

Un espace pour chaque groupe de trois chiffres à gauche de la décimale et deux chiffres à droite de la virgule. Example : 3,510.92.

2

Aucun point à gauche de la décimale et quatre chiffres à droite de la virgule. Example : 4235.9819.

Utilisez le style 128 pour supprimer les zéros à droite d'un ensemble de résultats lorsque vous convertissez des données numeric ou decimal en données de caractères.

Important

Si CAST ou CONVERT est utilisé pour nchar, nvarchar, binary et varbinary, SQL Server tronque les valeurs à 30 caractères maximum. SQL Server Compact autorise 4 000 pour nchar et nvarchar, et 8 000 pour binary et varbinary. C'est pourquoi les résultats générés par l'interrogation de SQL Server et SQL Server Compact sont différents. Dans les cas où la taille des types de données est spécifiée, par exemple nchar(200), nvarchar(200), binary(400), varbinary(400), les résultats sont identiques entre SQL Server et SQL Server Compact.

L'image ci-après illustre les conversions de données explicites et implicites dans SQL Server Compact.

Conversions de données explicites et implicites

Exemples

L'exemple suivant convertit une valeur datetime en une valeur nvarchar.

SELECT OrderDate, CONVERT(nvarchar(10), OrderDate, 101)
FROM Orders

Cast convertit explicitement une expression d'un type de données en un autre. Dans l'exemple suivant, le résultat de la conversion est 10.

SELECT CAST(10.6496 AS int)

En cas de conversion de données où le type de données cible a moins de décimales que le type de données source, la valeur est arrondie. Par exemple, le résultat de la conversion suivante est is $10.3497.

SELECT CAST(10.3496847 AS money)