在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了!

在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了!

你的表结构设计就有问题, 考虑得太粗糙了。看着似乎是学生的作业。
你按我下面的代码来, 应该就可以了。
不过, 你还可以尽情发挥, 因为实际来说还有钟点房……

  IF OBJECT_ID('room') IS NOT NULL
 BEGIN
    DROP TABLE room
 END
 GO
 CREATE TABLE room(
    rid INT PRIMARY KEY --房间号
    ,rName NVARCHAR(10) --房间名称
    --,rstate INT       --房间状态, 没有意义, 去掉
 )
 GO
 IF OBJECT_ID('orde') IS NOT NULL
 BEGIN
    DROP TABLE orde
 END
 GO
 CREATE TABLE orde(
    oid INT PRIMARY KEY --订单号
    ,rid INT            --房间号
    ,intime DATETIME    --入住时间 
    ,outtime DATETIME   --退房时间 => days(入住天数)要去掉, 不合适
 )
 GO
 SET NOCOUNT ON
 --1. 插入测试数据
INSERT INTO room values(1,'牡丹房')
INSERT INTO room values(2,'芍药房')
--1号房间有客人预订 2015-05-18 10:00->05-19 11:59
INSERT INTO orde  values(1,1,'2015-05-18 10:00','2015-05-19 11:59')

--查询2015-05-19 0:00-12:00 (上半天)之间可订房间
SELECT *
,CASE WHEN exists(
    SELECT 1 FROM ORDE b WHERE 
        a.rid=b.rid 
        AND
        ( 
            intime BETWEEN '2015-05-19' AND '2015-05-19 12:00' 
            or outtime BETWEEN '2015-05-19' AND '2015-05-19 12:00' 
        )   
) THEN '不可订' else '可订' end as rstate 
FROM room a
/*
rid         rName      rstate
----------- ---------- ------
1           牡丹房        不可订
2           芍药房        可订 
*/
--查询2015-05-19 12:00-23:59 (下半天)之间可订房间
SELECT *
,CASE WHEN exists(
    SELECT 1 FROM ORDE b WHERE 
        a.rid=b.rid 
        AND
        ( 
            intime BETWEEN '2015-05-19 12:00' AND '2015-05-19 23:59' 
            or outtime BETWEEN '2015-05-19 12:00' AND '2015-05-19 23:59' 
        )   
) THEN '不可订' else '可订' end as rstate 
FROM room a
/*
rid         rName      rstate
----------- ---------- ------
1           牡丹房        可订
2           芍药房        可订
*/

这都是你从数据库中查出来的啊,查完了,你就在前端显示就是了,显示样式根据美工效果图去做,数据接收可以用现在的很多模型去做,比如strust2,spring等

这个要看你的数据表结构怎么定义的。

补充一下:查询数据库时要用到room和orde(订单)两个表中的信息,room:rid(房间号),rstate(房间状态);orde:oid(订单号),rid(房间号),intime(入住时间),days(入住天数)。我想实现的是按日期动态显示客房信息,并且能按日期来预订客房