2012-08-04 255 views
1

如何仅选择大于40天的日期?选择日期和时间范围

SELECT name, gender, WardNo, StartOfOccupancy, EndOfOccupancy 
    FROM Patient, Occupancy 
    WHERE EndOfOccupancy > 40 StartOfOccupancy; 

我想显示该人已经在工作了40多天,他们结束了他们的入住前的数据,我已经试过无数的一些变体,但无法弄清楚如何构建线下决赛,并保持得到这个错误:

ORA-00932: inconsistent datatypes: expected DATE got NUMBER 

感谢您的任何帮助。

回答

0

尝试

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

你将要检查的边界情况,看看你得到你想要的东西。如果您使用Oracle DATE数据类型,您可能希望比较TRUNC(EndOfOccupancy)和TRUNC(StartOfOccupancy)以摆脱时间组件。

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