1

5122012のvarcharを2012年5月12日の日時に変換することは可能ですか?

ありがとう

4

1 に答える 1

3

まず第一に、日と月の末尾にゼロを付けないと実行できません。したがって、入力データは次のようにする必要があります。

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')
于 2012-11-29T12:21:54.883 に答える