我正在制作一个时间记录程序,因为人们有不同的时间模型(全职工作,兼职(例如,只工作在星期一3小时和星期三5小时)。我必须在每日基础上计算一切。表我有在我的脑海里是:
字段:
Workers_ID
Date
Weekday name
Hours to work
Hours worked
由于每个人每年都可以工作(工作时间),我需要连续日期输入(例如从01.01.2013
- 现在)或01.01.2013
- 01.01.2100
左右。
但是因为我对sql很新,所以我不知道如何实现。有人可以帮帮我吗?
答案 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)