sql等式当前值减去前几年?

pdtvr36n  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(301)

我有一张table,上面有医生的名字和生日。在索引页上,我只需要显示40岁以下的医生。我需要从当前年份中减去生日年份,只显示40岁以下的结果。。。

SELECT * FROM `doctor` WHERE dateadd(year, `date_birthday`, getdate())

我尝试将date sa datetime转换为date为year,但每次都返回null

SELECT id,CAST((CURDATE()-date_birthday) AS DATE) AS difference FROM doctor
ars1skjm

ars1skjm1#

SELECT * 
FROM `doctor` 
WHERE curdate() > `date_birthday` + interval 40 year
f87krz0w

f87krz0w2#

您没有指定数据库,并且格式不一致。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;

相关问题