MySQL CAST and MySQL CONVERT both help you change data type in MySQL. They are very similar in functionality with a few differences. Here’s the comparison MySQL CAST vs CONVERT to help you decide which one to use.
MySQL CAST vs CONVERT
Here’s a step by step comparison MySQL CAST vs CONVERT.
Functionality
MySQL CAST allows you to cast data from one data type to another data type. Here’s our detailed article about MySQL CAST.
MySQL CONVERT also allows you to convert data from one data type to another data type. It also allows you to convert character set of data into another character set. MySQL CAST cannot be used to change character set. Here’s our detailed article about MySQL CONVERT.
You can use MySQL CAST as well as MySQL CONVERT to convert data type of literals as well as columns.
Syntax
Here’s the syntax of MySQL CAST function
CAST(data as data_type)
MySQL CAST requires two inputs – the data to be typecasted and the data type (decimal, char, etc) to which you want to convert this data. You can cast data into BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED, UNSIGNED data types.
You can provide data as a literal value as shown below
CAST(1 as char)
OR
You can data as a column name (e.g id)
CAST(id as char)
Bonus Read : MySQL Rollback Query
Here’s the syntax of MySQL CONVERT function
CONVERT(input_value, data_type)
In the above function, you need to provide input_value as literal or column name, and data_type to which you want to convert this data. Like MySQL CAST, you can cast data into BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED, UNSIGNED data types.
For example, here’s how to convert literal value to another data type
CONVERT(1, char)
and here’s how to convert a column (e.g id) to another data type
CONVERT(id, char)
Here’s MySQL CONVERT syntax to convert character sets
CONVERT(input_value USING character_set)
In the above function, you need to provide input_value as literal string or column name, and character_set to which you want to convert this data.
Here’s an example of how to cast as latin1
convert('test string' using 'latin1')
Bonus Read : How to Use MySQL Rollup
Supported data types
Both MySQL CAST and MySQL CONVERT support data conversion only to BINARY, CHAR, DATE, DATETIME, TIME,DECIMAL, SIGNED, UNSIGNED data types. Other data types are not supported.
ANSI SQL Specification
MySQL CAST is a part of ANSI SQL specification while MySQL CONVERT is not a part of ANSI SQL specification.
As mentioned earlier MySQL CAST and MySQL CONVERT are similar and can be used interchangeably in most cases.
Ubiq makes it easy to visualize data in minutes, and monitor in real-time dashboards. Try it Today!
Sreeram Sreenivasan is the Founder of Ubiq. He has helped many Fortune 500 companies in the areas of BI & software development.