我有一个存储在数据库中的整数(SQLAgent频率间隔)这个整数实际上是计划运行的星期几的选定日期之和 . 可能的值是这些值的任意组合
-
星期天= 1
-
星期一= 2
-
星期二= 4
-
星期三= 8
-
星期四= 16
-
星期五= 32
-
星期六= 64
ex 65表示时间表应该在周六和周日运行
我的问题是我需要在给出65时将这些值表示为文本“Saturday”和“Sunday”,我试图在SQL中执行此操作
除了一个包含所有可能组合的巨大CASE声明之外,有没有人能想到这样做的方法?
谢谢
4 回答
您可以在T-SQL中使用按位运算符 . 这是如何做:
例如,这将产生“星期六星期六” .
我首先将它放在用户定义的函数上 . 此外,您可以使用a和在位级操作来检查它 - 我认为它是&,将更新 .
Update 1: 这是&,杰森已经举了一个例子 . 我仍然建议使用用户定义的函数:) .
编辑:这是进行位操作的C#代码 . 我在详细阅读问题之前发布了它,但我会把它作为替代方案留在这里 . 数据库真的是最好的地方吗?
你可以使用一个数组:
结果是一个字符串列表,如果你想合并它们,你可以做例如: