nvarchar
値をdatetime
T-SQLに変換する必要があります。値のddmmyyyy
形式は次のとおりです。23072009
datetime
T-SQLに変換する必要があります。
私は試した
select convert(datetime, '23072009', 103)
しかし、それはエラーを投げています。
「nvarchar データ型を datetime データ型に変換すると、範囲外の値になりました。」
何か案が
ありがとう
nvarchar
値をdatetime
T-SQLに変換する必要があります。値のddmmyyyy
形式は次のとおりです。23072009
datetime
T-SQLに変換する必要があります。
私は試した
select convert(datetime, '23072009', 103)
しかし、それはエラーを投げています。
「nvarchar データ型を datetime データ型に変換すると、範囲外の値になりました。」
何か案が
ありがとう
フォーマットを に再構築しますyyyymmdd
。
declare @D varchar(8)
set @D = '23072009'
select cast(right(@D, 4)+substring(@D, 3, 2)+left(@D, 2) as datetime)
スタイル103は、dd / mm/yyyy形式の文字列を受け入れます。したがって、コードは次のようになります。
declare @date varchar(8)
set @date='23072009'
select convert(datetime,stuff(stuff(@date,5,0,'/'),3,0,'/') , 103)
次のようにカスタム関数を定義できます。
CREATE FUNCTION [dbo].[GetCustomDate] (@customDateString NVARCHAR(MAX))
RETURNS DATETIME
AS
BEGIN
RETURN CONVERT(DATETIME, RIGHT(@customDateString, 4) + RIGHT(LEFT(@customDateString, 4), 2) + LEFT(@customDateString, 2))
END
int ではなく文字列をキャストする必要があります。いくつかの引用を入れてください:
convert(datetime, '23072009', 103)
そして 103 は、「ddmmyyyy」ではなく「dd/mm/yyyy」のような文字列を取得します。