|
convert()
Die
Datatype Conversion Function
convert()
konvertiert einen bestimmten
Wert
in einen anderen
Datentyp
oder gibt ein geändertes Anzeigeformat
eines
datetime Datentyps
aus.
Syntax der Datatype Conversion Function convert()
convert (datatype [(length) | (precision[, scale])]
[null | not null], expression [, style])
Parameter der Datatype Conversion Function convert()
datatype
Der
Parameter
"datatype" ist ein vom system bereitgestellter Datentyp. Also beispielsweise
char(10), unichar (10), varbinary (50) oder int. Die Funktion kann einen Ausdruck, also hier den Parameter
"expression"
in den angegebenen Datentyp. Der Parameter "datatype" erlaubt nicht die Angabe von
benutzerdefinierten Datentypen.
Wenn in der Datenbank
Java
freigegeben ist, dann ist es zusätzlich möglich für den Parameter "datatype"
Java-SQL Klassen
aus der aktuellen Datenbank angegeben werden.
length
Der Parameter "length" ist kann optional angegeben werden. Er kann mit den Datentypen
char,
nchar,
unichar,
univarchar,
varchar,
nvarchar,
binary
und
varbinary
belegt werden. Wenn keine Länge angegeben wird schneidet der
ASE®
die Ausgabe für
Character Datatypes
nach dem 30sten Schriftzeichen und
Binary Datatypes
nach dem 30
Byte
ab. Der erlaubte Höchstwert für den Parameter "length" ist
für Character Datatypes und Binary Datatypes jeweils 64K.
precision
Der Parameter "precision" entspricht der Anzahl der Ziffern in für die Datentypen
numeric
oder
decimal.
Für den Datentyp
float
gibt man mit dem Parameter "precision" die Anzahl der binären Ziffern in der
Mantisse,
also die Ziffer der Logarithmen, die hinter dem Komma stehen an.
Wirk kein Wert für den Parameter "precision" angegeben, dann wird die ASE
Standard-precision von 18 für numerische und dezimale Datentypen verwendet.
scale
Der Parameter "scale" gibt die Anzahl der Ziffern auf der rechten Seite des Kommas
eines Dezimalwertes an. Der Parameter "scale" ist optional. Wenn er nicht angegeben
wird, dann wird der Standardwert "0" verwendet.
null | not null
Der Parameter "null | not null" gibt die so genannte
nullability
des Rückgabewerts an. Der Parameter "null | not null" ist optional. Wenn er nicht angegeben
wird, dann wird der Rückgabewert in die gleiche "nullability" konvertiert wie die
"expression".
expression
Der Parameter "expression" gibt den Wert an, der von einem Datentyp zum anderen konvertiert
werden soll. Wenn in der Datenbank Java freigegeben ist, dann ist es zusätzlich möglich Werte des
Parameters "expression" in Java-SQL Klassen zu konvertieren. Wenn der Zieldatentyp, also
der Datentyp in den der Parameter "expression" konvertiert werden soll unichar ist, dann
wird die Standardlänge von 30 Unicode-Werten verwendet, sofern die Länge nicht explizit angegeben
wird.
style
Der Parameter "style" gibt das Ausgabeformat des zu konvertierenden Datentyps an.
Um das Ausgabeformat für die Datentypen money oder smallmoney so zu konvertieren, dass nach jeder dritten
Ziffer ein Komma geschrieben wird, muss die
style-Nummern
1 definiert werden.
select convert(money, 10003452.234, 1)
go
-----
10,003,452.23
Um die Datentypen datetime oder smalldatetime in ein character Datentyp zu konvertieren
und in einem bestimmten Format ausgeben zu können,
verwendet man
style-Nummern.
Um Werte des Datentyps date in den Datentyp character zu konvertieren, können die
style-Nummern
1 bis 7 respektive 101 bis 107 und 10 bis 12 respektive 120 bis 112 verwendet werden. Die
Standard-style-Nummer ist 0 bzw. 100 und definiert das Ausgabeformat: mon dd yyyy hh:miAM (oder PM ).
select convert(char(19), getdate())
go
-----
Wenn der Datentyp date in ein "style" konvertiert wird, der eine time-Komponente enthält,
dann wird diese standardmäßig mit "0" Werten (00:00:00:000) gefüllt.
Bei der Konvertierung des Datentyps time in einen character Datentyp können die
style-Nummern
8 oder 9 respektive 108 oder 109 zur Formatierung der Rückgabewertes angegeben werden.
Der Standardwert ist 100 (mon dd yyyy hh:miAM (oder PM)), die Formatierung der Standartausgabe
ohne Angabe des "style"-Parameters. Bei der Konvertierung des Datentyps time in ein
"style" mit Datumswerten wird der Rückgabewert mit dem Standarddatum
"Jan 1, 1900" ausgegeben.
Beispiel für die Datatype Conversion Function convert()
Wandelt das aktuelle Datum in "Style 3", der in dem Format TT/MM/JJ ausgegeben wird.
select convert(char(12), getdate(), 3)
go
-----
Anwendung der ASE Funktion convert()
Die Funktion convert() bietet sehr viele Anwendungsmöglichkeiten zur Konvertierung von
Datentypen und der Formatierung der Rückgabewerte von date-, time- und money. Darum sind hier
nur einige Besonderheiten und Beispiele aufgezählt.
Bei der Konvertierung des Datentypes
unichar
in andere Datentypen oder in ein anders
Ausgabe-Datum-Format kann der Rückgabewert höchtens die maximalen Länge des zu konvertierenden
Datentyps haben. Falls der Parameter legnth (die Länge des Datebtyps) nicht angegeben wird, so
gilt automatisch ein Standardlänge von 30
Bytes.
select convert(varchar(3), unichar) from your_table
go
-----
AB
Der Parameter "null | not null" wird meist bei
select into
zur Erstellung einer neuen
Tabelle
verwendet. So können in der neu erstellten Tabelle
nullable
Spalten
mit neuen Datentypen definiert werden.
select column, convert(char(255) not null, new_column)
into #temp_table
from your_table
Siehe auch:
biginttohex(), bintostr(), cast(), explicit conversion - Manuelle Konvertierung von Datentypen, hextobigint(), hextoint(), implicit conversions, inttohex().
|