TSQL - 将日期时间转换为 varchar 不是 return 友好格式

TSQL - Make Casting datetime as varchar not return friendly format

我有以下查询:

SELECT TOP 3 
    Person.Name AS PersonName,
    SUBSTRING(CAST(Person.BirthDate AS varchar(38)), 1, 2) AS CenteryBorn,
    Person.BirthDate AS CompleteDateTimeBorn
FROM Person     

我想要的是这样的,CenteryBorn 列具有日期时间的前两位数:

PersonName    CenteryBorn   CompleteDateTimeBorn

Fred          20            2000-03-16 00:00:00.000

Tim           19            1900-09-27 00:00:00.000

Jenny         19            1901-06-20 00:00:00.000 

然而我得到的是:

PersonName    CenteryBorn   CompleteDateTimeBorn

Fred          Ma            2000-03-16 00:00:00.000

Tim           Se            1900-09-27 00:00:00.000

Jenny         Ju            1901-06-20 00:00:00.000

完整的字符串表示似乎最终是 Mar 16 2000 12:00AM

有什么方法可以 CAST 将其作为字符串但采用默认格式而不是这种友好格式?

您可以改用 datepart 函数

substring(cast(datepart(y,person.birthdate) as varchar),1,2)

如何使用:

YEAR(BirthDate)/1000

使用SELECT YEAR(Person.BirthDate) / 100 AS CenteryBorn