0

我正在为使用 3 周轮换菜单的自助餐厅构建应用程序。简而言之,这是数据库结构:

Foodnum(int - PK - auto incrementing field)
FoodName(nvarchar - name of an Item)
FoodStation(nvarchar - name of station in cafeteria i.e grill, entree, salad bar)
WeekNum(int field -  containing 1 - 3)
DayNum(int field - containing 1 - 7)

我将如何将以下内容旋转 3 周然后循环(重新开始)而不在 sql 中存储开始日期。这甚至可能吗?

编辑 我刚刚创建了另一个表,它在名为 startdate 的列中的所有内容是设置为 datetime.now 的标签的值。所以它的值目前是 2013-06-07 14:24:08.000

4

2 回答 2

3

如果您保持相同的结构,并且在查询的 where 子句中执行类似

WHERE WeekNum = (DATEPART(WEEK, GETDATE()) % 3) + 1

这样你总能得到一个从 1 到 3 的数字。今天我们在第 23 周,所以它是第 3 周的菜单。

于 2013-06-07T21:39:12.067 回答
0

@user185791 这是我最终使用的。非常感谢和赞扬正确方向的观点。我觉得添加这个答案很有用,因为我知道会有其他人会觉得这很有用。

WHERE [WeekNum] = (DATEPART(WEEK, GETDATE()) % 3) + 1 AND [DayNum] = DATEPART(DW, GETDATE())

非常感谢!

于 2013-06-13T22:53:07.187 回答