SQL Server-明智地每天获取数据

时间:2018-12-03 07:01:50

标签: sql-server

我有一个表day,该表中的列是IsMondayIsSundayIsActive,如您在此屏幕快照中所见:

enter image description here

我想根据当前日期获取数据。

我们如何为此编写查询?

我收到的current day查询为:

declare @weekDayName nvarchar(10)

@weekDayName = (select datename(dw, getdate()))

我的问题是我通过了唯一的日期,并检查哪一天是current dayActive

请帮助我吗?

1 个答案:

答案 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);