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
我有以下查询:
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