【MySQL】CAST関数の使い方を解説(INT/DATE/DECIMAL)
  • facebookページ
  • twitterページ
  • 2020.01.30

    【MySQL】CAST関数の使い方を解説(INT/DATE/DECIMAL)

    キャスト(CAST)とは?

    キャストとは、変数などのデータ型を変換することを言います。

    例えば、「INT型をDATE型にする」といったイメージです。

    MySQLのさまざまな型でCASTしてみる

    ここでは実際に、さまざまな型でCASTしていきましょう。

    CASTする際は、次のように記述します。

    exprが変換したい値、typeが変換したいデータ型です。

    CAST関数でtypeに設定きるデータ型は、次のいずれかになります。

    CAST関数でtypeに設定きるデータ型
    • BINARY[(N)]
    • CHAR[(N)]
    • DATE
    • DATETIME
    • DECIMAL[(M[,D])]
    • SIGNED [INTEGER]
    • TIME
    • UNSIGNED [INTEGER]

    1.INT型(SIGNED/UNSIGNED)でCAST

    まずは、現在の日付と時間を返す「now()」を「SIGNED」型にCASTしてみましょう。

    上記のように、現在の時間が整数の並びに変換されているのがわかります。

    2.DATE型でCAST

    次に、数値を「DATE」型にCASTしてみましょう。

    「20200101」という数値が「2020-01-01」とDATE型に変換されています。

    3.DATETIME型でCAST

    数値を「DATETIME」型にCASTしてみましょう。

    基本的な動きはDATE型と同じになります。

    時間部分を指定しない場合、「00:00:00」になるのがわかります。

    4.VARCHAR型(CHAR/NCHAR)でCAST

    数値を「CHAR」型にCASTしてみましょう。

    先ほどDATETIME型で確認したものと同じ数値をCHAR型に変換してみます。

    DATETIME型とは異なり、CHAR型にCASTできているのがわかりますね。

    5.DECIMAL型でCAST

    引数なしのDECIMAL型でCASTすると、少数部分は表示されず整数で表示されます。

    6.FLOATはDECIMAL型で代用してCAST

    MySQLのCASTでは、FLOATの指定はできません。

    そのため、FLOATの代わりにDECIMAL型を用いることで少数でのCASTを実現します。

    DECIMALは次のように記述しましょう。

    引数の1つ目が「全体の桁数」、2つ目が「小数点以下の桁数」です。

    2020をDECIMAL(10,2)にすると「2020.00」に、DECIMAL(5,3)にすると「99.999」になります。

    まとめ

    MySQLのCAST関数の使い方についてまとめました。

    ポテパンダの一言メモ
    • CASTとは、変数などのデータ型を変換することを指す
    • CASTできるデータ型は決まっている
    • FLOAT型は使えないため、DECIMAL型で代用する

    CASTの使い方を知りたくなったら、ぜひこの記事を参考に使いこなしてください。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE