Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Mehrere Wochentage in einem Feld gespeichert

Womit Sie es zu tun haben, wird als bitweise Operatoren bezeichnet.

Hier ist ein gut zu lesen darauf mit klaren einfachen Beispielen.

Der Vollständigkeit halber sehen Sie hier, was Sie sehen, aufgeteilt in Spalten für jeden Wochentag.

DECLARE @bitwise TABLE (someValue TINYINT)

INSERT INTO @bitwise (someValue)
SELECT 1 UNION
SELECT 5 UNION
SELECT 127

SELECT someValue, CASE WHEN (1&someValue)=1 THEN 'SUNDAY' END
                , CASE WHEN (2&someValue)=2 THEN 'MONDAY' END
                , CASE WHEN (4&someValue)=4 THEN 'TUESDAY' END
                , CASE WHEN (8&someValue)=8 THEN 'WEDNESDAY' END
                , CASE WHEN (16&someValue)=16 THEN 'THURSDAY' END
                , CASE WHEN (32&someValue)=32 THEN 'FRIDAY' END
                , CASE WHEN (64&someValue)=64 THEN 'SATURDAY' END

FROM @bitwise