SQL Server CAST関数

概要: このチュートリアルでは、SQL ServerのCAST()関数を使用して、値や式をある型から別の型に変換する方法を学びます。

Introduction to SQL Server CAST()function

次のクエリを見てみましょう:

SELECT 1 + '1' AS result;
Code language: PHP (php)

数字として2を返します。

result-----------2(1 row affected)

このステートメントでは、SQL Serverは文字列'1'1に暗黙のうちに変換しています。

データ型の異なる2つの値を使用する場合、SQL Serverは計算を処理する前に、低い方のデータ型を高い方のデータ型に変換しようとします。 これは、SQL Serverでは暗黙の変換と呼ばれています。

暗黙的な変換とは対照的に、CAST() 関数を呼び出して、ある型の値を別の型に明示的に変換する明示的な変換があります。

SELECT 1 + CAST(1 AS INT) result;
Code language: PHP (php)

CAST() 関数の構文は次のようになります:

CAST ( expression AS target_type )
Code language: CSS (css)

この構文の場合。

  • expression には、リテラル値や、変換される任意の型の有効な式を指定できます。
  • target_typeINTBITSQL_VARIANTなどがあります。
  • lengthlength のデフォルトは 30 です。

CAST() 関数は、ターゲットのデータ型に変換された式を返します。

SQL Server CAST()関数の例

CAST()関数の使用例をいくつか挙げてみましょう。

A) CAST()関数を使用して10進数を整数に変換する例

この例では、CAST()5.95を整数に変換します:

SELECT CAST(5.95 AS INT) result;
Code language: CSS (css)

以下はその出力です。

result-----------5(1 row affected)

B) CAST()関数を使用して10進数を異なる長さの別の10進数に変換する

次の例では、CAST()関数を使用して、10進数の5.95をゼロスケールの別の10進数に変換します:

SELECT CAST(5.95 AS DEC(3,0)) result;
Code language: CSS (css)

出力は次のようになります:

result-------6

異なる場所にあるデータ型の値を変換した場合、SQL Serverは次のルールに基づいて切り捨てられた結果または丸められた値を返します。

です。

データ型から タイプ データタイプへ ビヘイビア
数字 ラウンド
数字 int 切り捨て
数字 お金 ラウンド
お金td int Round
money numeric Round
Round
float int Truncate
float numeric Round
float datetime Round
datetime int Round

C) Using CAST()function to convert a string to a datetime value example

この例では、CAST()'2019-03-14'をdatetimeに変換します:

SELECT CAST('2019-03-14' AS DATETIME) result;
Code language: PHP (php)

出力は以下のとおりです。

result-----------------------2019-03-14 00:00:00.000(1 row affected)
Code language: CSS (css)

D) 算術演算子を使ったCAST()関数の使用

サンプルデータベースのsales.orderssales.order_itemsのテーブルを使ってデモを行います。

サンプルテーブル

以下のステートメントでは、CAST()関数を使用して、2017年の月別売上高を整数値に変換しています。

SELECT MONTH(order_date) month, CAST(SUM(quantity * list_price * (1 - discount)) AS INT) amountFROM sales.orders o INNER JOIN sales.order_items i ON o.order_id = i.order_idWHERE YEAR(order_date) = 2017GROUP BY MONTH(order_date)ORDER BY month;
Code language: PHP (php)

次の図は、出力結果です。

SQL Server CAST関数の例

このチュートリアルでは、SQL ServerのCAST()関数を使用して、ある型から別の型に値を変換する方法を学びました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です