1

我构建了一个应用程序,旨在成为自助餐厅的在线菜单。但是由于某种原因,即使它被填充,它今天也没有返回任何物品。这是我用来提取项目的 SQL 查询:

Select num, FoodItem, Week, Day, Station, Site 
  from FoodMenu WHERE [Week] = (DATEPART(WEEK, GETDATE()) % 3) + 1 
  AND [Day] = DATEPART(DW, GETDATE()) -1

星期一设置为Day 1,星期日设置为Day 7

4

1 回答 1

4

-1 看起来不正确,因为它会产生以下结果(注意 0 代表星期日,而您实际上想要 7):

天 | 陶氏 | 变身
星期日 | 1 | 0
星期一 | 2 | 1
星期二 | 3 | 2
星期三 | 4 | 3
星期四 | 5 | 4
星期五 | 6 | 5
星期六 | 7 | 6

你真正想要的是:

天 | 陶氏 | 变身
星期日 | 1 | 7
星期一 | 2 | 1
星期二 | 3 | 2
星期三 | 4 | 3
星期四 | 5 | 4
星期五 | 6 | 5
星期六 | 7 | 6

最简单的方法是使用案例:

[Day] = CASE WHEN DATEPART(WEEKDAY, GETDATE()) = 1 THEN 7 ELSE DATEPART(WEEKDAY, GETDATE()) - 1 END
于 2013-09-02T01:53:36.057 回答