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

SQL ServerのCONVERT関数とは?使い方と書式指定の具体例を徹底解説

本記事では、SQL Serverにおけるデータ型変換用のCONVERT関数について、基本的な構文から具体的な使用例まで詳しく解説します。実際のコード例を通じて、CONVERT関数の動作をしっかりと理解できるようになります。

CONVERT関数の概要

CONVERT関数は、SQL Serverで式を任意のデータ型に変換するための関数です。特に日付型(date/datetime)を文字列に変換する際には、指定した書式(フォーマット)に従って出力することができます。変換が失敗した場合はエラーが発生し、成功した場合は変換後の値が返されます。

なお、類似の機能を持つCAST関数との大きな違いは、CONVERTでは日付の表示書式を第3引数として指定できる点です。柔軟なフォーマット変換が必要な場面ではCONVERTが便利です。

構文

SQL ServerでCONVERT関数を使用する場合、以下の構文に従います。

CONVERT ( データ型 ( 長さ ), 式, 書式 )

パラメータの説明

  1. データ型: 変換先となる新しいデータ型の名前です。指定できる主なデータ型は以下の通りです。
    bigint、int、smallint、tinyint、bit、decimal、numeric、money、smallmoney、float、real、datetime、smalldatetime、char、varchar、text、nchar、nvarchar、ntext、binary、varbinary、image
  2. 長さ(省略可能): char、varchar、nchar、nvarchar、binary、varbinary 型の場合に、結果のデータ長を指定します。
  3. 式: 別のデータ型へ変換したい値です。テーブルの列名や計算式を指定することもできます。
  4. 書式(省略可能): 日付形式のデータを文字列に変換する際の出力スタイルを指定する数値です。よく使われる書式の一覧は下記の表を参照してください。

日付変換で使える主な書式一覧

年2桁年4桁出力形式
0100mon dd yyyy hh:miAM/PM(デフォルト)
1101mm/dd/yyyy(米国標準)
2102yy.mm.dd(ANSI標準)
3103dd/mm/yy(英国/フランス標準)
4104dd.mm.yy(ドイツ標準)
5105dd-mm-yy(イタリア標準)
6106dd mon yy
7107Mon dd, yy
8108hh:mi:ss
9109mon dd yyyy hh:mi:ss:mmmAM/PM
10110mm-dd-yy(米国標準)
11111yy/mm/dd(日本標準)
12112yymmdd(ISO標準)
13113dd mon yyyy hh:mi:ss:mmm(ヨーロッパ標準・24時間制)
14114hh:mi:ss:mmm(24時間制)
20120yyyy-mm-dd hh:mi:ss(ODBC標準・24時間制)
21121yyyy-mm-dd hh:mi:ss:mmm(ODBC標準・24時間制)
-126yyyy-mm-ddThh:mi:ss.mmm(ISO8601標準)
-127yyyy-mm-ddThh:mi:ss.mmmZ(ISO8601標準)
-130dd mon yyyy hh:mi:ss:mmmAM/PM(ヒジュラ暦標準)
-131dd/mm/yy hh:mi:ss:mmmAM/PM(ヒジュラ暦標準)

注意点

  1. float型やnumeric型のデータをint型(整数)に変換する場合、CONVERTは小数点以下を切り捨てます。四捨五入ではなく切り捨てになる点に注意してください。
  2. 変換が失敗してもエラーにしたくない場合は、TRY_CASTやTRY_CONVERT関数の利用を検討するとよいでしょう。これらは変換に失敗した際にNULLを返します。
  3. CONVERT関数は、SQL Server 2017、SQL Server 2016、SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005以降のバージョンで使用できます。

使用例

ここからは、SQL ServerにおけるCONVERT関数の具体的な使用例を見ていきましょう。

SELECT CONVERT(int, 14.85);
-- 結果: 14(小数点以下が切り捨てられる)

SELECT CONVERT(float, 14.85);
-- 結果: 14.85

SELECT CONVERT(varchar, 15.6);
-- 結果: '15.6'

SELECT CONVERT(varchar(4), 15.6);
-- 結果: '15.6'

SELECT CONVERT(float, '15.6');
-- 結果: 15.6

SELECT CONVERT(datetime, '2019-05-02');
-- 結果: '2019-05-02 00:00:00.000'

SELECT CONVERT(varchar, '05/02/2019', 101);
-- 結果: '05/02/2019'(書式101=米国標準 mm/dd/yyyy で出力)

このように、CONVERT関数を使えば数値・文字列・日付の間で自由にデータ型を変換でき、書式番号を組み合わせることで日付の表示形式も細かく制御できます。日常的なクエリ作成やデータ整形の場面でぜひ活用してください。

  1. 【SQL Server】AVG関数の使い方を徹底解説!基本構文から実用例まで

    本記事では、SQL Serverにおける数値処理関数「AVG」の使い方を、基本構文と具体的な使用例を交えて詳しく解説します。AVG関数の動作を正しく理解し、実務のデータ集計に活かせるようにしましょう。 AVG関数とは AVG関数は、SQL Serverにおいて式の平均値、または選択された行のうち指定した列の平均値を返す集計関数です。なお、NULLの値は自動的に除外され、平均の計算対象には含まれません。 基本構文 平均値を計算するには、SQL ServerでAVG関数を次のように記述します。 SELECT AVG(列名)FROM テーブル名[WHERE 条件]; パラメータの説明: 列名:平均

  2. SQL ServerのCOUNT関数とは?基本構文からDISTINCT・GROUP BYの活用まで徹底解説

    この記事では、SQL ServerのCOUNT関数の使い方について、具体的な構文と実行例を挙げながら詳しく解説します。COUNT関数はデータベース操作で最も頻繁に使われる集計関数の一つです。基本をしっかり押さえておくことで、日々のデータ分析やシステム開発に大きく役立ちます。 COUNT関数とは COUNT関数は、SQL Serverにおいてテーブル内のレコード(行)の件数を数えるために使用される集計関数です。重要なポイントとして、NULLが含まれる値はカウントの対象から除外されるという特性があります。 基本構文 SQL ServerでCOUNT関数を使用する際は、以下の構文を使用します。