SQL Serverを使用する場合、 CONVERT()
を使用して、日付/時刻の値を文字列に変換できます。 働き。この関数を使用すると、異なるデータ型間で変換できます。
この記事では、さまざまな日付/時刻データ型を varchar
に変換します。 またはnvarchar
文字列。
この関数の良い点の1つは、日付が返されるスタイルを指定できることです。たとえば、 mm / dd / yyyyとして返されるかどうかを指定できます。 、 yyyy.mm.dd 、 Mon dd、yyyy 、など。時間コンポーネントを返すかどうか、およびそのスタイルを指定することもできます。
構文
まず、公式の構文は次のとおりです。
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
これらの引数は次のように定義されています。
式
- 有効な式。
-
data_type
- ターゲットデータ型。これには、 xmlが含まれます 、 bigint 、および sql_variant 。エイリアスデータ型は使用できません。
長さコード>
- ターゲットデータ型の長さを指定するオプションの整数。デフォルト値は
30
です 。 スタイル
-
CONVERT()
の方法を指定する整数式 関数は式を変換します 。 NULLのスタイル値の場合、NULLが返されます。 data_type 範囲を決定します。
基本的な例
この例では、変数を宣言し、 GETDATE()
から値を割り当てます。 働き。次に、値を返し、その値を varchar
に変換します。 そしてそれを返します:
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar, @date) AS Converted;
結果:
+-------------------------+---------------------+ | Original | Converted | |-------------------------+---------------------| | 2018-06-07 03:08:21.997 | Jun 7 2018 3:08AM | +-------------------------+---------------------+
戻りデータ型のデフォルトの長さは30
です。 、したがって、 varchar
のみを指定した場合でも 、結果を varchar(30)
として返します 。
この例では、返されるスタイルを示す3番目の引数を指定していません。したがって、 datetimeのデフォルトスタイルを使用して変換されています。 およびsmalldatetime 0
であるデータ型 または100
(以下のスタイルの詳細)
スタイルの指定
3番目の引数を使用して、戻り値がとるスタイルを指定できます。
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 102) AS Converted;
結果:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:42:33.840 | 2018.06.07 | +-------------------------+-------------+
この例では、 102
のスタイルを指定しました 、これは、4桁の年コンポーネントで日付を表示するためのANSI規格です。
これを2桁の年のANSI形式に変更するには、 2
のスタイルを使用できます。 :
DECLARE @date datetime = GETDATE(); SELECT @date AS Original, CONVERT(varchar(30), @date, 2) AS Converted;
結果:
+-------------------------+-------------+ | Original | Converted | |-------------------------+-------------| | 2018-06-07 03:44:52.433 | 18.06.07 | +-------------------------+-------------+
SQL Serverの日付/時刻から文字列の例までのCONVERT()の例をもっと見ることができます。