Sql 选择日期和时间框架

Sql 选择日期和时间框架,sql,oracle,Sql,Oracle,如何仅选择大于40天的日期 SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy FROM Patient, Occupancy WHERE EndOfOccupancy > 40 StartOfOccupancy; 我想显示该人员在结束工作前工作超过40天的数据,我尝试了多种方法,但不知道如何构建最终线路并不断出现此错误: ORA-00932: inconsistent datatypes: ex

如何仅选择大于40天的日期

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy  
  FROM Patient, Occupancy  
  WHERE EndOfOccupancy > 40 StartOfOccupancy;  
我想显示该人员在结束工作前工作超过40天的数据,我尝试了多种方法,但不知道如何构建最终线路并不断出现此错误:

ORA-00932: inconsistent datatypes: expected DATE got NUMBER
谢谢你的帮助。

试试看

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy
FROM Patient, Occupancy
WHERE EndOfOccupancy > DATE_ADD(StartOfOccupancy, INTERVAL 40 DAY)

您需要检查边界情况,以查看是否得到了所需的结果。如果您使用的是Oracle日期数据类型,您可能希望比较TRUNC(EndOfOccupancy)和TRUNC(StartOfOccupancy),以消除时间组件

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy  
  FROM Patient, Occupancy  
  WHERE TRUNC(EndOfOccupancy) - TRUNC(StartOfOccupancy) >= 40;