我是新手,所以请放轻松我。我看了整个网络,无法找到任何真正帮助我的东西。
所以我需要提供在计算机部门工作的所有正规学者的详细信息 截至2014年12月31日已超过60岁。
我的麻烦来自于我如何处理显示60岁以上的人的数据你可以减去另一个约会的日期吗?或者是否有可能的sql命令我缺少。
我的尝试:
SELECT *
FROM staff, department
WHERE DOB <= '31/12/1964'
AND staff.department_ID = department.department _ID
答案 0 :(得分:1)
有计算日期之间差异的函数,但最有效的方法是首先计算一个人在2014-12-31出生的日期为60。这样就可以直接与值进行比较,因此数据库可以使用索引(如果有的话)。
Oracle示例:
select
PersonId, FirstName, LastName
from
Person
where
Born <= add_months(date '2014-12-31', -60 * 12)
MySQL的示例(尽管您删除了MySQL标记):
select
PersonId, FirstName, LastName
from
Person
where
Born <= date_sub('2014-12-31' 60 year)
答案 1 :(得分:0)
我认为在SQL SERVER中
选择Datediff(DAYS,&#39; 05-19-2015&#39;,&#39; 05-21-2015&#39;)
在我的SQL中
SELECT TIMESTAMPDIFF(HOUR,start_time,end_time)
as difference
FROM timeattendance WHERE timeattendance_id =&#39; 1484&#39;
答案 2 :(得分:0)
oracle add_months函数可以帮助你。
where yourfield < add_months(date '1964-12-31', 60*12 )