Tsql 将附加文本转换为日期

Tsql 将附加文本转换为日期,tsql,Tsql,因此连接的字符串如下所示:04/05/88 试着让它工作 试过这个,我现在有个约会,但它给我1900年或1905年,这是不对的 convert(datetime, BIRTH_MM + '/' + BIRTH_DD + '/' + BIRTH_YY, 103) as Birthdate 更新 尝试了一些东西,但还没有完全实现: convert(datetime, BIRTH_MM + BIRTH_DD + BIRTH_YY, 103) as Birthdate 在不查看这些值上的表

因此连接的字符串如下所示:
04/05/88

试着让它工作

试过这个,我现在有个约会,但它给我1900年或1905年,这是不对的

  convert(datetime,  BIRTH_MM + '/' +  BIRTH_DD + '/' + BIRTH_YY, 103) as Birthdate
更新

尝试了一些东西,但还没有完全实现:

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

请参见表中的
BIRTH_-MM
BIRTH_-DD
BIRTH_-YY
列?这是从哪里来的?这是查询的一部分。它必须是表中的列…T-SQL。字段在DB@CoffeeAddict这种转换应该是有效的。演示的值与inttry一样,无法转换(datetime,cast(BIRTH_DD as varchar(2))+'/'+cast(BIRTH_MM as varchar(2))+'/'+cast(BIRTH_YY as varchar(4)),103)as birthDate是您的
BIRTH_YY
四个字符还是两个?@CoffeeAddict您应该在问题中放置代码更新,而不是在答案中。
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