5

nvarchar値をdatetimeT-SQLに変換する必要があります。値のddmmyyyy形式は次のとおりです。23072009

datetimeT-SQLに変換する必要があります。

私は試した

select convert(datetime, '23072009', 103)

しかし、それはエラーを投げています。

「nvarchar データ型を datetime データ型に変換すると、範囲外の値になりました。」

何か案が

ありがとう

4

5 に答える 5

8

フォーマットを に再構築しますyyyymmdd

declare @D varchar(8)
set @D = '23072009'

select cast(right(@D, 4)+substring(@D, 3, 2)+left(@D, 2) as datetime)
于 2012-08-20T09:17:51.493 に答える
6

スタイル103は、dd / mm/yyyy形式の文字列を受け入れます。したがって、コードは次のようになります。

declare @date varchar(8)
set @date='23072009'
select convert(datetime,stuff(stuff(@date,5,0,'/'),3,0,'/')  , 103) 
于 2012-08-21T08:56:00.650 に答える
1

次のようにカスタム関数を定義できます。

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
于 2012-08-20T09:25:28.820 に答える
-2

int ではなく文字列をキャストする必要があります。いくつかの引用を入れてください:

convert(datetime, '23072009', 103)

そして 103 は、「ddmmyyyy」ではなく「dd/mm/yyyy」のような文字列を取得します。

于 2012-08-20T09:17:26.420 に答える