我有下面的表格
event_ID Int,
Start_Date Date,
End_Date Date,我想创建一个永久的日历器表,其中包括以下列
calender_ID,
Event_ID,
Event_Date,我希望Event_Date列出Start_date和End_Date之间的所有日期
我在Visual Studio中使用SQL Server Express 2008
感谢你的任何帮助
哈曼
发布于 2012-05-20 22:10:09
首先,创建一个类似于SO Thread中提到的"ExplodeDates“的函数:https://stackoverflow.com/questions/1378593/get-a-list-of-dates-between-two-dates-using-a-function/1378788#1378788
接下来,在您计划使事件和日历表保持同步的存储过程/触发器中,您基本上只需执行类似以下的操作:
DELETE FROM CalenderTable WHERE Event_ID=@EventID
INSERT INTO CalenderTable (Event_ID, Event_Date)
SELECT Event.Event_ID, Dates.TheDate
FROM Event
CROSS APPLY ExplodeDates(Event.Start_Date, Event.End_Date) Dates
WHERE Event.Event_ID=@EventID我在这台机器上没有SQL,所以我还没有机会测试它。它可能需要一些调整,但这至少应该能让你走上一条可行的道路……
https://stackoverflow.com/questions/10673735
复制相似问题