【发布时间】:2010-09-27 13:25:06
【问题描述】:
我正在开发一个系统来存储约会和定期约会。我的架构是这样的
Appointment
-----------
ID
Start
End
Title
RecurringType
RecurringEnd
RecurringTypes
---------------
Id
Name
我保持循环类型简单且仅支持
Week Days,
Weekly,
4 Weekly,
52 Weekly
如果 RecurringType 为空,则该约会不会重复,RecurringEnd 也可以为空,如果它为空但 RecurringType 是一个值,那么它将不确定地重复。我正在尝试编写一个存储过程来返回给定日期范围内的所有约会及其日期。
我的存储过程适用于非重复性会议,但我正在努力找出返回重复性的最佳方法,这是我到目前为止所拥有的
ALTER PROCEDURE GetAppointments
(
@StartDate DATETIME,
@EndDate DATETIME
)
AS
SELECT
appointment.id,
appointment.title,
appointment.recurringType,
appointment.recurringEnd,
appointment.start,
appointment.[end]
FROM
mrm_booking
WHERE
(
Start >= @StartDate AND
[End] <= @EndDate
)
我现在需要添加 where 子句来获取重复并更改 select 中返回的内容,以返回正常会议的开始和结束日期以及重复计算的开始/结束日期。
任何有关处理此问题的最佳方法的指针都会很棒。我正在使用 SQL Server 2005
【问题讨论】:
标签: sql-server sql-server-2005 stored-procedures