5122012のvarcharを2012年5月12日の日時に変換することは可能ですか?
ありがとう
まず第一に、日と月の末尾にゼロを付けないと実行できません。したがって、入力データは次のようにする必要があります。
05122012
次に、次の「ネイティブ」形式を使用することをお勧めします。
20121205
とにかくサーバーが理解していること
提示したデータを取得する唯一の方法である場合は、日付をテストして返す関数が必要になります
基本的な機能は次のようになります (SQL Server 2008 の例):
この関数は、入力データが次の05122012
場合に機能します。末尾なしで必要な場合0
は、そのチェックを関数に追加する必要があります
create function [dbo].[Str2Date] ( @data as varchar(8))
returns datetime
AS
begin
declare @day char(2), @mon char(2), @year char(4)
set @day = substring(@data,1,2)
set @mon = substring(@data,3,2)
set @year = substring(@data,5,4)
set @data = @year+@mon+@day
return convert (datetime,@data,112)
end
select dbo.Str2Date('05122012')