前の記事では、明示的な型変換に使用される CAST 関数について説明しました。暗黙的な型変換を回避すると、多くの利点があります。実際、ここには整理する必要がある詳細がまだたくさんあります。この記事では、MySQL の明示的な型変換の基本的な知識を中心に紹介し、例を通して分析結果を示します。
まず、次の変換を見てみましょう:
mysql> SELECT CAST('2017-12-14' AS DATE); +----------------------------+ | CAST('2017-12-14' AS DATE) | +----------------------------+ | 2017-12-14 | +----------------------------+ 1 row in set (0.00 sec)
その中には:
2017-12-14が変換対象のデータとなります。
DATE は変換された型です。
標準の構文は次のとおりです:
CAST(expr AS type)
ここで注意する必要があるのは、type はすべてのデータ型をサポートするわけではなく、特定のデータ型をサポートするということです。これが今日の記事の焦点でもあります。 (私はこの損失を被りました。すべてのデータ型がサポートされていることを当然だと思っていましたが、顔を平手打ちされました)。
サポートされていないエラー:
mysql> SELECT CAST('1024' AS int); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'int)' at line 1
サポートされているタイプ
以下は、CAST 関数でサポートされるデータ型のリストです:
を入力してください | 備考 |
---|---|
日付 | YYYY-MM-DD |
日時 | YYYY-MM-DD HH:mm:ss |
時間 | ひ:mm:ss |
小数点 | 通常、小数点以下の桁とともに使用されます |
チャー | 固定長の文字列 |
んちゃー | 型はCHARと同じです |
サイン入り | 符号付き 64 ビット整数 |
署名なし | 符号なし 64 ビット整数 |
バイナリ | バイナリ文字列 |
ジェソン | MySQL 5.7.8 以降 |
注:
サポートされている DATE の範囲は 1000-01-01 から 9999-12-31 です (実験版は:)
999-01-01 の場合、結果は 0999-01-01 になります。
01-01-01 の場合、2001-01-01 になります。
れぇぇぇぇぇぇぇぇぇ2. CAST 関数の expr の値は type に変換でき、変換結果は正しくなります。それ以外の場合、変換結果は Null、0 などのデフォルト値になります。
たとえば、Char 型を Demical 型に変換すると、変換結果は 0 になります。
りー変換ケース
一般的に使用される型変換の例をいくつか示します。
DATE型
rreeeTIME型
りぃ日付タイプ
mysql> select cast('999-11-11' as DATE); +---------------------------+ | cast('999-11-11' as DATE) | +---------------------------+ | 0999-11-11 | +---------------------------+ 1 row in set (0.00 sec)
サイン入りタイプ
rreeeUNSIGNED タイプ
mysql> select cast('01-11-11' as DATE); +--------------------------+ | cast('01-11-11' as DATE) | +--------------------------+ | 2001-11-11 | +--------------------------+ 1 row in set (0.00 sec)
DECIMAL 型
mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.20 | +-----------+ 1 row in set (0.00 sec)
関連する推奨事項:
PHP でカプセル化された Mysql 操作クラスの詳細な説明
中国語で文字化けする MySQL ストア データの問題を PHP がどのように解決するか
以上がMySQL の明示的な型変換の例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。