表与连续日期

时间:2013-05-28 08:19:51

标签: sql sql-server database tsql

我正在制作一个时间记录程序,因为人们有不同的时间模型(全职工作,兼职(例如,只工作在星期一3小时和星期三5小时)。我必须在每日基础上计算一切。表我有在我的脑海里是:

字段:

Workers_ID
Date
Weekday name
Hours to work
Hours worked

由于每个人每年都可以工作(工作时间),我需要连续日期输入(例如从01.01.2013 - 现在)或01.01.2013 - 01.01.2100左右。

但是因为我对sql很新,所以我不知道如何实现。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

不确定我是否理解你需要什么,但这是一种在两个日期之间获得连续日期的方法:

DECLARE @startDate DATETIME
DECLARE @endDate DATETIME

SET @startDate = '2013-01-01'
SET @endDate = GETDATE()


;WITH CTE_Dates AS
(
    SELECT @startDate AS DT
    UNION ALL
    SELECT DATEADD(DD,1,DT) FROM CTE_Dates
    WHERE DT <= @endDate
)
SELECT * FROM CTE_Dates
OPTION (MAXRECURSION 0)
相关问题