【发布时间】:2016-02-18 16:11:26
【问题描述】:
CREATE TABLE ReservedServiceItems
(
serviceItemID VARCHAR(4) NOT NULL,
reservationNumber VARCHAR(4) NOT NULL,
startDate DATE NOT NULL,
endDate DATE NOT NULL,
qty INT NOT NULL,
);
INSERT INTO ReservedServiceItems VALUES('SCI1','R1','2016-02-02','2016-02-08','1'); --Availalbe 09-11
INSERT INTO ReservedServiceItems VALUES('SCI1','R2','2016-02-12','2016-02-15','1'); --Available 16--end of query
INSERT INTO ReservedServiceItems VALUES('SCI2','R3','2016-03-10','2016-03-15','1');
INSERT INTO ReservedServiceItems VALUES('SCI3','R4','2016-04-02','2016-02-15','1');
INSERT INTO ReservedServiceItems VALUES('SCI4','R5','2016-05-10','2016-02-15','1');
我在编写查询时需要帮助,我将输入日期范围(开始和结束)的参数,该参数将用于针对表“ReservedServiceItems”运行以检查每个服务项目的可用性及其日期范围的可用性。
我们以前2个虚拟数据为例,输入参数Begin date: 01-02-2016和End Date: 30-01-2016 sql查询应该输出如下数据
Service Item Available From Available Till
SCI1 2016-02-01 2016-02-01
SCI1 2016-02-09 2016-02-11
SCI1 2016-02-16 2016-02-30
更新:
在 sql 中运行它。我想得到的是 SCI1 没有保留的可用日期,在 2016-01-01 到 2016-01-30 的范围内
目前 SCI1 于 2016-02-02 至 2016-02-08 和 2016-02-12 至 2016-02-15 保留
我需要显示 SCI1 未保留的剩余日期。
任何帮助将不胜感激 =)
【问题讨论】:
-
您是在 sql 中还是在某种前端中执行此操作?代码看起来没问题,运行时会发生什么,错误是什么?
-
在 sql 中运行它。我想得到的是 SCI1 没有保留的可用日期,在 2016-01-01 到 2016-01-30 的范围内,现在 SCI1 保留在 2016-02-02 到 2016-02-08,和2016-02-12 到 2016-02-15 我需要显示 SCI1 未保留的剩余日期。
-
不相关,但是:
'1'是一个字符串值,而不是一个数字。切勿将数字括在引号中。也许邪恶的隐式数据类型转换会正确,但你不应该依赖它。 -
Microsoft SQL Server Management Studio,感谢您指出引用 =)
-
吹毛求疵:“Microsoft SQL Server Management Studio”不是 DBMS。它是 SQL 客户端(恰好只能与 SQL Server 一起使用)
标签: sql sql-server