我需要从表PERSON和列BIRTHDATE(varchar(8))中获取select DATEDIFF (year , person.BirthDate, GETDATE()) as Age, * from person
的名称。
在我开始显示年龄> = 70之前尝试此查询。
SessionID SessionName
100 August
101 September
102 October
103 November
104 December
105 January
106 May
107 June
108 July
此查询提供
“从字符串转换日期和/或时间时转换失败。”
我该怎么做?我真的不能想到。感谢
答案 0 :(得分:4)
您可以使用下面的查询
SELECT DATEDIFF( year , Convert( datetime,person.birthdate, 120 ), GETDATE() ) as Age FROM persons
这将首先将您的person.birthdate
列转换为日期,然后找出差异
答案 1 :(得分:1)
似乎出生日期列是varchar数据类型。尝试将其转换为datetime
SELECT
DATEDIFF (year , cast(person.BirthDate as datetime),
GETDATE()) as Age, *
FROM
person