CONVERT
Syntassi
CONVERT(espr, tipo), CONVERT(espr USING nome_transcoding)
Spiegazione
Le funzioni CONVERT() e CAST() accettano un valore di un tipo e restituiscono un valore di un altro tipo.
Il tipo può essere uno dei seguenti:
- BINARY[(N)]
- CHAR[(N)]
- DATE
- DATETIME[(D)] — Il decimale (D) è stato aggiunto in 5.3
- DECIMAL[(M[,D])]
- DOUBLE[(M[,D])] — Aggiunto in 5.3
- INTEGER — Aggiunto in 5.3
- Abbreviazione per SIGNED INTEGER
- SIGNED [INTEGER]
- TIME[(D)] — Il decimale (D) è stato aggiunto in 5.3
- UNSIGNED [INTEGER]
Si noti che in MariaDB, INT e INTEGER sono sinonimi.
BINARY produce una stringa del tipo BINARY. Si veda http://dev.mysql.com/doc/refman/5.1/en/binary-varbinary.html per una spiegazione su come questo influenza i confronti tra i valori. Se la lunghezza opzionale N è specificata, BINARY(N) fa sì che la conversioni non utilizzi più di N byte dell'argomento. I valori più brevi di N byte vengono riempiti con byte 0x00 fino a raggiungere la lunghezza N.
CHAR(N) fa sì che la conversioni non utilizzi più di N caratteri dell'argomento.
La differenza principale tra CAST() e CONVERT() è che CONVERT(espr, tipo) è una sintassi ODBC, mentre CAST(espr as tipo) e CONVERT(... USING ...) sono sintassi di SQL92.
CONVERT() si può usare con USING per convertire i dati tra diversi set di caratteri. In MySQL i nomi di transcoding sono gli stessi dei set di caratteri corrispondenti. Ad esempio, l'istruzione seguente converte la stringa 'abc', codificata nel set di caratteri di default, nella stringa corrispondente codificata in utf8:
SELECT CONVERT('abc' USING utf8);
Esempi
SELECT col_enum FROM nome_tabella ORDER BY CAST(col_enum AS CHAR);