我有一个表day
,该表中的列是IsMonday
至IsSunday
和IsActive
,如您在此屏幕快照中所见:
我想根据当前日期获取数据。
我们如何为此编写查询?
我收到的current day
查询为:
declare @weekDayName nvarchar(10)
@weekDayName = (select datename(dw, getdate()))
我的问题是我通过了唯一的日期,并检查哪一天是current day
和Active
。
请帮助我吗?
答案 0 :(得分:3)
您的表似乎可以保留的唯一信息是一周中每一天的单独一列。因此,对于当前日期,我们能做的最好的就是选择与该天相对应的列:
SELECT *
FROM yourTable
WHERE
(DATEPART(dw, GETDATE()) = 1 AND isSunday = 1) OR
(DATEPART(dw, GETDATE()) = 2 AND isMonday = 1) OR
(DATEPART(dw, GETDATE()) = 3 AND isTuesday = 1) OR
(DATEPART(dw, GETDATE()) = 4 AND isWednesday = 1) OR
(DATEPART(dw, GETDATE()) = 5 AND isThursday = 1) OR
(DATEPART(dw, GETDATE()) = 6 AND isFriday = 1) OR
(DATEPART(dw, GETDATE()) = 7 AND isSaturday = 1);