-5
  convert(datetime,  BIRTH_MM + '/' +  BIRTH_DD + '/' + BIRTH_YY, 103) as Birthdate

したがって、連結された文字列は次のようになります。04/05/88

これを機能させようとしています。

これを試して、閉じる日付を取得しましたが、年または1905の1900が正しくありません

convert(datetime,  BIRTH_MM + BIRTH_DD + BIRTH_YY, 103) as Birthdate

アップデート

何かを試してみましたが、まだそこにはありません:

 case when(BIRTH_DD > 0 and BIRTH_MM > 0 and BIRTH_YY > 0)
    then 
            convert(datetime, cast(BIRTH_DD as varchar(1)) + '/' + cast(_BIRTH_MM as varchar(2)) + '/' + cast(BIRTH_YY as varchar(4)), 103)
    else
            convert(datetime, '1900-01-01', 103) as Birthdate,
        end
4

1 に答える 1

2

これらの値のテーブル構造やデータ型を確認せずに、次のようなものを使用できます。

declare @BIRTH_MM int = 04
declare @BIRTH_DD int = 05
declare @BIRTH_YY int = 1988

select convert(datetime,
               cast(@BIRTH_MM as varchar(2)) + '/' +  
               cast(@BIRTH_DD as varchar(2)) + '/' + 
               cast(@BIRTH_YY as varchar(4)), 101) as Birthdate

SQL Fiddle with Demoを参照してください

于 2012-10-29T16:54:10.910 に答える