CAST関数 前回の記事では、型変換を表示するために使用する CAST 関数について説明しました。暗黙的な型変換を回避することには多くの利点があります。実際のところ、ここでは整理する必要がある詳細がまだたくさんあります。 まず、次の変換を見てみましょう。 mysql> SELECT CAST('2017-12-14' AS DATE); +----------------------------+ | キャスト(日付: '2017-12-14') | +----------------------------+ | 2017-12-14 | +----------------------------+ セット内の 1 行 (0.00 秒) で: 2017-12-14が変換対象となるデータです。 変換された型はDATEです。 標準的な構文は次のとおりです。 CAST(式 AS 型) ここで注目すべきは、type はすべてのデータ型をサポートしているわけではなく、特定のデータ型をサポートしているということです。これが今日の記事の焦点でもあります。 (私は以前にもこの損失を経験しました。すべてのデータ タイプがサポートされていることを当然だと思っていましたが、ひどい目に遭いました)。 サポートされていないエラー: mysql> SELECT CAST('1024' AS int); エラー 1064 (42000): SQL 構文にエラーがあります。1 行目の 'int)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 サポートされているタイプ CAST 関数が変換をサポートするデータ型のリストは次のとおりです。
知らせ: サポートされている日付の範囲は、1000-01-01 から 9999-12-31 です (実験バージョン:) 999-01-01 の場合、結果は 0999-01-01 になります。 01-01-01 の場合は、2001-01-01 になります。 mysql> 選択キャスト('999-11-11'をDATEとして); +---------------------------+ | '999-11-11' を DATE としてキャスト | +---------------------------+ | 0999-11-11 | +---------------------------+ セット内の 1 行 (0.00 秒) mysql> キャストを選択します('01-11-11' を DATE として); +--------------------------+ | キャスト('01-11-11' を DATE として) | +--------------------------+ | 2001-11-11 | +--------------------------+ セット内の 1 行 (0.00 秒) mysql> バージョンを選択します(); +-----------+ | バージョン() | +-----------+ | 5.7.20 | +-----------+ セット内の 1 行 (0.00 秒) 2. CAST 関数の expr の値は型に変換でき、変換結果は正しいです。そうでない場合、変換後の結果は Null、0 などのデフォルト値になります。 たとえば、Char 型を Demical 型に変換すると、変換の結果は 0 になります。 mysql> SELECT CAST('ANDYQIAN' AS DECIMAL); +-----------------------------+ | CAST('ANDYQIAN' を DECIMAL として) | +-----------------------------+ | 0 | +-----------------------------+ セットに 1 行、警告 1 件 (0.00 秒) コンバージョン事例 よく使用される型変換の例をいくつか示します。 日付型 mysql> キャストを選択します('2017-12-14' を DATE として); +----------------------------+ | キャスト('2017-12-14' を日付として) | +----------------------------+ | 2017-12-14 | +----------------------------+ セット内の 1 行 (0.00 秒) 時間型 mysql> キャストを選択します('12:00:00' を TIME として); +--------------------------+ | '12:00:00' を TIME としてキャストします | +--------------------------+ | 12:00:00 | +--------------------------+ セット内の 1 行 (0.00 秒) DATETIM型 mysql> キャストを選択します('2017-12-14 00:11:11' を DATETIME として); +-----------------------------------------+ | キャスト('2017-12-14 00:11:11' を DATETIME として) | +-----------------------------------------+ | 2017-12-14 00:11:11 | +-----------------------------------------+ セット内の 1 行 (0.00 秒) SIGNEDタイプ mysql> '-1024' を SIGNED としてキャストを選択します。 +-------------------------+ | '-1024' を SIGNED としてキャスト | +-------------------------+ |-1024 | +-------------------------+ セット内の 1 行 (0.00 秒) UNSIGNED 型 mysql> '-1024' を UNSIGNED としてキャストを選択します。 +---------------------------+ | '-1024' を UNSIGNED としてキャスト | +---------------------------+ | 18446744073709550592 | +---------------------------+ セットに 1 行、警告 1 件 (0.00 秒) DECIMAL型 mysql> '18.11' を DECIMAL(18,2) としてキャストを選択します。 +--------------------------------+ | '18.11' を DECIMAL(18,2) としてキャストします | +--------------------------------+ | 18.11 | +--------------------------------+ セット内の 1 行 (0.00 秒) 以上が今回のコンパイル内容です。テスト時にコマンドを入力して試すことができます。分からないことがあれば、下のコメント欄で議論することができます。 以下もご興味があるかもしれません:
|
<<: TomcatをダウンロードしてLinuxにインストールする詳細な手順
>>: Linux Tensorflow2.0のインストール問題を解決する
エクスポートデフォルト({ URL、 メソッド = 'GET'、 データ = nu...
実際の使用では、ミニプログラムを友人や友人サークルと共有する必要があることが多く、通常は一度に 1 ...
RGBAは色の値と透明度を設定できるCSSカラーです以下は、rgba() を使用して白色を 50% ...
1.1 はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメ...
1. Get はサーバーからデータを取得するために使用され、Post はサーバーにデータを渡すために...
目次1 テストケース2 JS配列重複排除4種類2.1 要素の比較2.1.1 二重層 for ループ比...
最近、docker load -i コマンドを使用してイメージ パッケージを圧縮した後、イメージ名と...
コードをコピーコードは次のとおりです。 <hr style="width:490px...
この記事では、Centos7.6 システムと Oracle11g を例に挙げます。 1. まずデータ...
Hyper-V を展開するためのハードウェア要件は次のとおりです。 64 ビット プロセッサ、具体...
入力タイプ「file」とは何ですか?これが何なのかは説明する必要はないと思います。誰もが知っているこ...
目次1: galera-clusterの紹介2. galera-clusterの仕組み3: Mari...
目次1. 同時実行制御の概要1.1 フェーズ1 1.2 フェーズ2 1.3 フェーズ3 2. 同時実...
【質問】外側のテーブルと内側のテーブルがネストされていて、内側のテーブルと外側のテーブルの両方に境界...
遅いログクエリ機能スロー ログ クエリの主な機能は、設定された時間しきい値を超える SQL ステート...