【发布时间】:2015-09-01 20:25:40
【问题描述】:
关于特定整数字段存储数据的方式,我遇到了一些心理障碍。
具体来说,有一列的整数范围为 1 - 127;每个整数代表一周中不同日子的组合。例如:星期一 = 2^0 或 1,星期二 = 2^2 或 2,星期三 = 2^3 或 8;可选择加法,星期一 + 星期二 = 3。
我已经能够使用找到的示例here 部分提取日期值。但是,当两天加在一起时(例如,星期一 + 星期二 = 3),该特定示例不起作用。谁能指出我正确的方向?
仅供参考,我使用的是 SQL Server 2008 R2。抱歉,如果之前已经发布过,我看了看,但找不到任何其他帖子。
【问题讨论】:
-
该列使用位字段或位图,其中值中的每个位代表一天。这是正确的方向。
-
你应该问问这个系统的“设计师”他们为什么选择这种方式(并提醒他们现在已经不是 70 年代了)。
-
@AaronBertrand 我现在期待一篇“被认为有害的位掩码”博文。
-
@BaconBits sqlperformance.com/2012/08/t-sql-queries/…
标签: sql sql-server-2008 date