【问题标题】:SQL equation current your minus other year?SQL 等式当前您减去其他年份?
【发布时间】:2018-05-25 12:10:48
【问题描述】:

我有一张表格,上面有医生的姓名和生日年份。在索引页面上,我只需要显示 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

【问题讨论】:

标签: mysql sql phpmyadmin


【解决方案1】:

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

【讨论】:

  • @YogeshSharma:它是 MySQL。语法和错误 #1582 泄露了
  • 我在本地主机上使用 phpmyadmin - mySQL 是 4.5 和 PHP 版本 5.6.33
【解决方案2】:
SELECT * 
FROM `doctor` 
WHERE curdate() > `date_birthday` + interval 40 year

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    相关资源
    最近更新 更多