获取当前年份和出生日期之间的年龄,给出**"Conversion failed when converting date and/or time from character string."**



我需要从表 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

最新更新