我需要从表 PERSON 和列 BIRTHDATE(varchar(8))中获取age >=70
的名字。
只是在我开始显示年龄之前尝试此查询> = 70。
select DATEDIFF (year , person.BirthDate, GETDATE()) as Age, * from person
此查询给出
"从字符串转换日期和/或时间时转换失败。"
我应该怎么做?我真的想不出来。谢谢
您可以使用下面的查询
SELECT DATEDIFF( year , Convert( datetime,person.birthdate, 120 ), GETDATE() ) as Age FROM persons
这将首先将您的person.birthdate
列转换为日期,然后找到差异
似乎出生日期列是 varchar 数据类型。尝试将其转换为日期时间
SELECT
DATEDIFF (year , cast(person.BirthDate as datetime),
GETDATE()) as Age, *
FROM
person