Microsoft SQL Server
データ型の変換
サーチ…
TRY PARSE
文字列データ型をターゲットデータ型(日付または数値)に変換します。
たとえば、ソースデータは文字列型で、日付型に変換する必要があります。変換が失敗した場合は、NULL値を返します。
構文:TRY_PARSE(string_value ASデータ型[USINGカルチャ])
String_value - 引数はソース値で、NVARCHAR(4000)型です。
Data_type - この引数は、日付または数値のターゲットデータ型です。
カルチャー - これはカルチャの形式に値を変換するのに役立つオプションの引数です。日付をフランス語で表示したい場合、文化タイプを 'Fr-FR'として渡す必要があります。有効なカルチャー名を渡さないと、PARSEはエラーを発生させます。
DECLARE @fakeDate AS varchar(10);
DECLARE @realDate AS VARCHAR(10);
SET @fakeDate = 'iamnotadate';
SET @realDate = '13/09/2015';
SELECT TRY_PARSE(@fakeDate AS DATE); --NULL as the parsing fails
SELECT TRY_PARSE(@realDate AS DATE); -- NULL due to type mismatch
SELECT TRY_PARSE(@realDate AS DATE USING 'Fr-FR'); -- 2015-09-13
コンバートを試みる
値を指定されたデータ型に変換し、変換に失敗した場合はNULLを返します。たとえば、ソース値は文字列形式で、日付/整数形式が必要です。そうすれば、同じことを達成するのに役立ちます。
構文:TRY_CONVERT(データ型[(長さ)]、式[、スタイル])
TRY_CONVERT()は、キャストが成功した場合に、指定されたデータ型にキャストされた値を返します。それ以外の場合はnullを返します。
Data_type - 変換先のデータ型。長さは指定された長さの結果を得るのに役立つオプションのパラメーターです。
Expression - 変換される値
スタイル - フォーマットを決定するオプションのパラメータです。 「May、18 2013」のような日付書式が必要な場合は、111としてスタイルを渡す必要があります。
DECLARE @sampletext AS VARCHAR(10);
SET @sampletext = '123456';
DECLARE @ realDate AS VARCHAR(10);
SET @realDate = '13/09/2015’;
SELECT TRY_CONVERT(INT, @sampletext); -- 123456
SELECT TRY_CONVERT(DATETIME, @sampletext); -- NULL
SELECT TRY_CONVERT(DATETIME, @realDate, 111); -- Sep, 13 2015
TRY CAST
値を指定されたデータ型に変換し、変換に失敗した場合はNULLを返します。たとえば、ソース値は文字列形式で、二重/整数形式で必要です。それがこれを達成するのに役立ちます。
構文:TRY_CAST(式AS data_type [(length)])
TRY_CAST()は、キャストが成功した場合に、指定されたデータ型にキャストされた値を返します。それ以外の場合はnullを返します。
式 - キャストに使用されるソース値です。
Data_type - ソース値がキャストするターゲットデータ型。
長さ - ターゲットデータ型の長さを指定するオプションのパラメーターです。
DECLARE @sampletext AS VARCHAR(10);
SET @sampletext = '123456';
SELECT TRY_CAST(@sampletext AS INT); -- 123456
SELECT TRY_CAST(@sampletext AS DATE); -- NULL
キャスト
Cast()関数は、データ型変数またはデータをあるデータ型から別のデータ型に変換するために使用されます。
構文
CAST([式] ASデータ型)
式をキャストしているデータ型がターゲット型です。キャスト元の式のデータ型がソース・タイプです。
DECLARE @A varchar(2)
DECLARE @B varchar(2)
set @A='25a'
set @B='15'
Select CAST(@A as int) + CAST(@B as int) as Result
--'25a' is casted to 25 (string to int)
--'15' is casted to 15 (string to int)
--Result
--40
DECLARE @C varchar(2) = 'a'
select CAST(@C as int) as Result
--Result
--Conversion failed when converting the varchar value 'a' to data type int.
失敗した場合はエラーをスローする
変換
式をある型から別の型に変換する場合、多くの場合、データ型をvarchar型に変換するために、ストアドプロシージャや他のルーチン内に必要があります。変換関数は、そのようなものに使用されます。 CONVERT()関数は、さまざまな形式の日付/時刻データを表示するために使用できます。構文
CONVERT(データ型(長さ)、式、スタイル)
文字データへのdatetimeまたはsmalldatetime変換のスタイルスタイル値。スタイル値に100を加えて、世紀(yyyy)を含む4桁の年を取得します。
select convert(varchar(20),GETDATE(),108)
13:27:16