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()の例をもっと見ることができます。