我有一张名字和医生的生日年份的桌子。在索引页面上,我只需要显示40岁以上的医生。我需要从当年减去生日年份,只显示40岁以下的结果......
SELECT * FROM `doctor` WHERE dateadd(year, `date_birthday`, getdate())
我尝试将日期sa日期时间转换为日期,但每次返回NULL
SELECT id,CAST((CURDATE()-date_birthday) AS DATE) AS difference FROM doctor
答案 0 :(得分:2)
您没有指定数据库,格式不一致。 ANSI标准语法为:
SELECT d.*
FROM doctor d
WHERE date_birthdate >= CURRENT_DATE - INTERVAL '40 YEAR';
日期/时间函数因数据库而异,因此可能无法在您的特定数据库中使用。因此,需要一个数据库标签。
例如,在MySQL中,你会丢弃单引号:
SELECT d.*
FROM doctor d
WHERE date_birthdate >= CURRENT_DATE - INTERVAL 40 YEAR;
答案 1 :(得分:1)
SELECT *
FROM `doctor`
WHERE curdate() > `date_birthday` + interval 40 year