場合によっては、MySQLデータをあるデータ型から別のデータ型にキャストする必要があります。 MySQLCAST関数を使用してデータを型キャストする方法は次のとおりです。
MySQLでCastを入力する方法
MySQL CASTがどのように機能するか、およびMySQLCAST関数を使用してデータを型キャストする方法を見ていきます。
MySQLCAST関数の構文は次のとおりです
CAST(data as data_type)
MySQL CASTには、タイプキャストされるデータと、このデータを変換するデータ型(decimal、charなど)の2つの入力が必要です。データをBINARY、CHAR、DATE、DATETIME、TIME、DECIMAL、SIGNED、UNSIGNEDのデータ型にキャストできます。
以下に示すように、データをリテラル値として提供できます
CAST(1 as char)
または
列名(IDなど)としてデータ化できます
CAST(id as char)
ボーナス読み取り:MySQLロールバッククエリ
これは、SELECT句でintをcharにキャストするサンプルSQLクエリです
mysql> select cast(1 as char) from sales;
WHERE句でMySQLCASTを使用することもできます。ここでは、WHERE句で文字列をintに変換します。
mysql> select * from sales where id=CAST('213' as int);
ボーナスリード:MySQLロールアップクエリの使用方法
MySQLCASTの例
MySQLCAST関数の一般的な例をいくつか見てみましょう。
IntとしてのMySQLCAST
これは、MySQLがfloatを符号付き整数にキャストする例です。 UNSIGNEDまたはSIGNED整数データ型にのみキャストできることに注意してください。 CAST関数ではINTを使用できません。
mysql> select cast(1.23 as signed); +------------------------+ | cast(1.23 as signed) | +------------------------+ | 1 | +------------------------+
10進数としてのMySQLCAST
10進数としてキャストする方法は次のとおりです
mysql> select cast(1.23 as decimal(4,3)); +----------------------------+ | cast(1.23 as decimal(4,3)) | +----------------------------+ | 1.230 | +----------------------------+
ボーナスリード:MySQLバージョンを確認する方法
フロートとしてのMySQLCAST
MySQLCASTはfloatとしてのキャストをサポートしていません。上記のように10進数でキャストする必要があります。
mysql> select cast(2.234 as decimal(5,3)); +-----------------------------+ | cast(2.234 as decimal(5,3)) | +-----------------------------+ | 2.234 | +-----------------------------+
MySQL Cast as Varchar
MySQL CASTは、varcharとしてのキャストをサポートしていません。以下に示すように、charとしてキャストする必要があります。
mysql> select cast('xyz' as char); +---------------------+ | cast('xyz' as char) | +---------------------+ | xyz | +---------------------+
MySQL日時から現在まで
日時を現在までにキャストする方法は次のとおりです。
mysql> select cast('2020-01-01 13:30:00' as date); +-------------------------------------+ | cast('2020-01-01 13:30:00' as date) | +-------------------------------------+ | 2020-01-01 | +-------------------------------------+
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。