我知道这个可能会有点令人困惑,我只是想着考虑最好的方法来解决这个问题!我现在在几个论坛上发布了这个,但我似乎没有任何运气.希望有人可以就如何做到这一点提出一些建议.
示例表(tbl_Bookings)
ID DateStarted DateEnded RoomID
1 16/07/2012 09:00 16/07/2012 10:00 1
2 16/07/2012 12:00 16/07/2012 13:00 1
Run Code Online (Sandbox Code Playgroud)
基本上,我想输入2个日期时间,例如16/07/2012 08:30和16/07/2012 13:30,它将查询我上面的示例表并返回'可用'时间,IE,我喜欢输出以下内容.
16/07/2012 08:30 - 16/07/2012 09:00
16/07/2012 10:00 - 16/07/2012 12:00
16/07/2012 13:00 - 16/07/2012 13:30
Run Code Online (Sandbox Code Playgroud)
我的问题是,这完全可以在SQL中使用吗?我试着想一想如何在VB中做到这一点,我也在努力解决这个问题.我的想法/尝试一直在使用Ron Savage的fn_daterange(如下所示)
if exists (select * from dbo.sysobjects where name = 'fn_daterange') drop function fn_daterange;
go
create function fn_daterange
(
@MinDate as datetime,
@MaxDate as datetime,
@intval as datetime
)
returns table
as
return
WITH times (startdate, enddate, intervl) AS
(
SELECT @MinDate as …
Run Code Online (Sandbox Code Playgroud)