MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQL CASTはどのようにオーバーフローを処理できますか?


MySQL CASTは、数値式の評価中に発生するオーバーフローを処理できます。数値式の評価でオーバーフローが発生した場合、MySQLはエラーメッセージを反映するとします。このオーバーフローを処理するために、CASTを使用してその数値をUNSIGNEDに変更できます。

たとえば、BIGINTの最大値に1を追加すると、MySQLは次のようにオーバーフローが原因でエラーを生成します-

mysql> Select 9223372036854775807 + 1;
ERROR 1690 (22003): BIGINT value is out of range in '(9223372036854775807+1)'

CASTの助けを借りて、MySQLはこの種のオーバーフローを次のように処理します:

mysql> Select CAST(9223372036854775807 AS UNSIGNED) +1;

+------------------------------------------+
| CAST(9223372036854775807 AS UNSIGNED) +1 |
+------------------------------------------+
| 9223372036854775808                      |
+------------------------------------------+
1 row in set (0.07 sec)

  1. MySQLで非ASCII文字を見つけるにはどうすればよいですか?

    非ASCII文字は、ポンド記号(£)、商標記号、プラスマイナス記号などの文字です。表から非ASCII文字を見つけるには、次の手順が必要です- 最初に、次のように指定されたcreateコマンドを使用してテーブルが作成されます- mysql> CREATE table NonASciiDemo -> ( -> NonAScii varchar(100) -> ); Query OK, 0 rows affected (0.61 sec) その後、次のような挿入コマンドを使用して、レコードがテーブルに挿入されます- mysql> INSERT into NonASc

  2. MySQLでDATETIMEをDATEとしてキャストする方法は?

    MySQLでDATETIMEをDATEとしてキャストするには、CAST()関数を使用します。構文は次のとおりです- select cast(yourColumnName as Date) as anyVariableName from yourTableName; 上記の構文を理解するために、最初にテーブルを作成しましょう- mysql> create table ConvertDatetimeToDate −> (    −> YourDatetime datetime −> ); Query OK, 0 ro