Die Funktionen CAST() und CONVERT() von MySQL können verwendet werden, um einen Wert eines Typs abzurufen und einen Wert eines anderen Typs zu generieren. Die spezifische Syntax der beiden lautet wie folgt:
CAST(value as type); CONVERT(value, type);
ist CAST (xxx AS-Typ), CONVERT (xxx, Typ).
Die Typen, die konvertiert werden können, sind begrenzt. Dieser Typ kann einer der folgenden Werte sein:
Binär, mit der Wirkung eines binären Präfixes: BINARY
Zeichentyp, kann Parameter annehmen: CHAR()
Datum: DATUM
Zeit: ZEIT
Datumszeittyp: DATETIME
Gleitkommazahl: DEZIMAL
Ganzzahl: VORZEICHNET
Ganzzahl ohne Vorzeichen: UNSIGNED
Hier ein paar Beispiele:
Beispiel 1
mysql> SELECT CONVERT('23',SIGNED); +----------------------+ | CONVERT('23',SIGNED) | +----------------------+ | 23 | +----------------------+ 1 row in set
Beispiel 2
mysql> SELECT CAST('125e342.83' AS signed); +------------------------------+ | CAST('125e342.83' AS signed) | +------------------------------+ | 125 | +------------------------------+ 1 row in set
Beispiel 3
mysql> SELECT CAST('3.35' AS signed); +------------------------+ | CAST('3.35' AS signed) | +------------------------+ | 3 | +------------------------+ 1 row in set
Konvertieren Sie wie im obigen Beispiel varchar mit cast(a as signiert) in int, wobei a ein String vom Typ varchar ist.
Beispiel 4
In SQL Server demonstriert der folgende Code das hexadezimale Speicherergebnis der Datumsspeicherung, wenn die datetime-Variable nur ein einfaches Datum und eine einfache Uhrzeit enthält.
DECLARE @dt datetime --单纯的日期 SET @dt='1900-1-2' SELECT CAST(@dt as binary(8)) --结果: 0x0000000100000000 --单纯的时间 SET @dt='00:00:01' SELECT CAST(@dt as binary(8)) --结果: 0x000000000000012C
Die Typkonvertierung von MySQL ist die gleiche wie die von SQL Server, außer dass die Typparameter etwas anders sind: CAST(xxx AS type), CONVERT(xxx, type).