A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z  Sonderzeichen  sybase-tech-blog


Kategorie: ASE: Funktionen: Datentyp Konvertierungs Funktionen

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().