Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Più giorni della settimana memorizzati in un campo

Quello con cui hai a che fare viene chiamato operatori bit per bit.

Ecco un buona lettura su di esso con esempi chiari e semplici.

Per completezza, ecco cosa stai guardando suddiviso in colonne per ogni giorno della settimana.

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