ホームページ  >  記事  >  データベース  >  MySQL の明示的な型変換の例の共有

MySQL の明示的な型変換の例の共有

小云云
小云云オリジナル
2018-01-05 16:36:271532ブラウズ

前の記事では、明示的な型変換に使用される 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型

rreee

TIME型

りぃ

日付タイプ

mysql> select cast('999-11-11' as DATE);
+---------------------------+
| cast('999-11-11' as DATE) |
+---------------------------+
| 0999-11-11        |
+---------------------------+
1 row in set (0.00 sec)

サイン入りタイプ

rreee

UNSIGNED タイプ

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)

関連する推奨事項:

MySQL インスタンス共有をアップグレードする最良の方法

PHP でカプセル化された Mysql 操作クラスの詳細な説明

中国語で文字化けする MySQL ストア データの問題を PHP がどのように解決するか

以上がMySQL の明示的な型変換の例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。