Cast(<Ausdruck> As <Datentyp>[(<Länge des Datentyps>)])
Convert(<Datentyp> [(<Länge des Datentyps>)], <Ausdruck> [, <Stil>])
Wert | Beschreibung |
0 | Maximal sechs Ziffern, zunächst als Dezimalzahl, bei größeren/kleineren Werten wissenschaftlich |
1 | immer acht Ziffern, immer wissenschaftlich. Die Zeichenkette muß mindestens 15 Zeichen lang sein. |
2 | immer sechzehn Ziffern und wissenschaftlich. Die Zeichenkette muß minimal 23 Zeichen bereitstellen. |
Convert(nvarchar(15), -3.5e0, 2) = -3.5000000e+000
Convert(nvarchar(23), 3.5e0, 2) = -3.500000000000000e+000
Wenn die Länge die Zeichenkette unter den angegebenen Minimalwerten 15/23 liegen, wird ein Laufzeitfehler erzeugt.
Wert | Beschreibung |
0 | Keine Tausendertrennzeichen, zwei Nachkommastellen |
1 | Tausendertrennzeichen und zwei Nachkommastellen |
2 | keine Tausendertrennzeichen, vier Nachkommastellen |
Convert(nvarchar(20), $2730.50, 0) = 2730.50
Convert(nvarchar(20), $2730.50, 1) = 2,730.50
Convert(nvarchar(20), $2730.50, 2) = 2730.5000
Jahrhundert 2-stellig | Jahrhundert 4-stellig | Bezeichnung | Darstellung |
---|---|---|---|
- | 0 oder 100 (*) | Standard | mon dd yyyy hh:miAM (oder PM) |
1 | 101 | USA | mm/dd/yy |
2 | 102 | ANSI | yy.mm.dd |
3 | 103 | Britisch/Französisch | dd/mm/yy |
4 | 104 | Deutsch | dd.mm.yy |
5 | 105 | Italienisch | dd-mm-yy |
6 | 106 | - | dd mon yy |
7 | 107 | - | Mon dd, yy |
8 | 108 | - | hh:mm:ss |
- | 9 oder 109 (*) | Standardwert + Millisekunden | mon dd yyyy hh:mi:ss:mmmAM (oder PM) |
10 | 110 | USA | mm-dd-yy |
11 | 111 | JAPAN | yy/mm/dd |
12 | 112 | ISO | yymmdd |
- | 13 oder 113 (*) | Europ. Standard + Millisekunden | dd mon yyyy hh:mm:ss:mmm(24h) |
14 | 114 | - | hh:mi:ss:mmm(24h) |
- | 20 oder 120 (*) | ODBC kanonisch | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 oder 121 (*) | ODBC kanonisch (mit Millisekunden) | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126(***) | ISO8601 | yyyy-mm-dd Thh:mm:ss.mmm(keine Leerzeichen) |
- | 130* | Hijri**** | dd mon yyyy hh:mi:ss:mmmAM |
- | 131* | Hijri**** | dd/mm/yy hh:mi:ss:mmmAM |
Select 1 As [pos], 'a' + Cast(5 as nvarchar(10)) + 'b' As [Text],
Len('a' + Cast(5 as nvarchar(10)) + 'b') As [Länge]
Union
Select 2, 'a' + Str(5) + 'b', Len('a' + Str(5) + 'b')
Order By Pos
Ausgabe:
pos Text Länge ----------- ------------ ----------- 1 a5b 3 2 a 5b 12
2. Erstellen einer abgeschnittenen Zeichenfolge: Sind in einem Feld bsp. 100 Zeichen zugelassen, sollen jedoch maximal 50 Zeichen ausgegeben werden, so kann anstelle der Left -Funktion Cast genutzt werden:
Select Cast(A.KundenInfo as nvarchar(50)) From Kunden
3. Verwendung, um eine Zeichenfolge und eine Zahl bereits innerhalb einer Abfrage zu verketten. Hier ist eine Konvertierung zwingend, da ansonsten versucht wird, die nicht numerische Spalte in eine numerische Spalte zu konvertieren.
Select V.V_Name + ' (' + Cast(V.V_Prov * 100 as nvarchar(5)) + '%)'
From Vertreter As V
erzeugt eine Ausgabe:
Schulze, Fritz (7.00%)
Meier, Franz (5.00%)
Meyer, Emil (6.00%)