当前位置:  开发笔记 > 数据库 > 正文

将整数转换为工作日列表

如何解决《将整数转换为工作日列表》经验,为你挑选了1个好方法。

我有一个存储在数据库中的整数(SQLAgent频率间隔)这个整数实际上是计划运行的星期几的选定日期之和.可能的值是这些值的任意组合

星期日= 1

星期一= 2

星期二= 4

星期三= 8

星期四= 16

星期五= 32

星期六= 64

ex 65表示时间表应该在周六和周日运行

我的问题是我需要在给出65时将这些值表示为文本"Saturday"和"Sunday",我试图在SQL中执行此操作

除了一个包含所有可能组合的巨大CASE声明之外,有没有人能想到这样做的方法?

谢谢



1> Jason Cohen..:

您可以在T-SQL中使用按位运算符.这是如何做:

SELECT
  ( CASE WHEN daybits & 1 = 1 THEN 'Sunday ' ELSE '' END ) +
  ( CASE WHEN daybits & 2 = 2 THEN 'Monday ' ELSE '' END ) +
  ( CASE WHEN daybits & 4 = 4 THEN 'Tuesday ' ELSE '' END ) +
  ...
  ( CASE WHEN daybits & 64 = 64 THEN 'Saturday ' ELSE '' END ) +

例如,这将产生"星期六星期六".

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有