SQL Server 跟踪日期变化时的计划班次

2023-12-04

我什至不知道从哪里开始解决这个问题,我需要从我们的 MS SQL 2012 数据库查询生产数据,该数据库具有基于记录的班次的日期时间戳,棘手的部分是我们运行 4 个 12 小时班次采用 2 开、2 关、3 开、2 关的模式,即 2013 年 1 月的前 3 周:

S   M   T   W   T   F   S
        1   2   3   4   5
        C/D A/B A/B C/D C/D

6   7   8   9   10  11  12
C/D A/B A/B C/D C/D A/B A/B

13  14  15  16  17  18  19
A/B C/D C/D A/B A/B C/D C/D

A&C 是早班,运行时间 7:00-19:00,B&D 是夜间运行,运行时间 19:00-7:00 我对 SQL 相当陌生,还没有做过类似的事情,我知道我可以轻松确定2013 年 1 月 1 日上午班次的数据为:

select *
from Line05
where L05Time BETWEEN '01/01/2013 07:00' AND '01/01/2013 19:00'

例如,但我不确定如何将其与 C Shift 联系起来。


下面列出了一个轮班表。目前尚不清楚您想要做什么,但您应该能够使用此处显示的一些计算来进行逆向工程,确定事件日期/时间的变化。

EDIT:已更正case处理 2/2/3/2 模式。

; with Samples as (
  -- Start at the beginning of 2013.
  select Cast( '01-01-2013 00:00' as DateTime ) as Sample
  union all
  -- Add hours up to the desired end date.
  select DateAdd( hour, 1, Sample )
    from Samples
    where Sample <= '2013-01-30'
  ),
  ExtendedSamples as (
  -- Calculate the number of days since the beginning of the first shift on 1/1/2013.
  select Sample, DateDiff( hour, '01-01-2013 07:00', Sample ) / 24 as Days
    from Samples ),
  Shifts as (
  -- Calculate the shifts for each day.
  select *,
    case when ( Days + 1 ) % 9 in ( 0, 1, 4, 5 ) then 'C/D' else 'A/B' end as Shifts
    from ExtendedSamples )
  select *,
    case when DatePart( hour, Sample ) between 7 and 18 then Substring( Shifts, 1, 1 ) else Substring( Shifts, 3, 1 ) end as Shift
    from Shifts
    option ( maxrecursion 0 )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 跟踪日期变化时的计划班次 的相关文章

随机推荐

  • Android MapView 可拖动标记

    我想在 Android MapView com google android maps MapView 中创建一个可拖动标记 如下所示 http koti mbnet fi ojalesa exam draggable html 我已经有一
  • javascript 5 0 - 20 之间的随机非重复整数

    生成 5 个 0 20 之间的随机非重复整数的最佳方法是什么 我在想 将Math random与floor一起使用 循环5次 检查是否有重复项 如果重复 则再次随机 你有什么办法 您可以生成一个从 0 到 20 的数字数组 洗牌并获取结果数
  • 使用行为一致但已弃用的 HTML 标签有何缺点?

    当用户访问我的网站时 他们不关心如何perfect或多少standard该页面已编码 他们只关心它是否有效 有些标签已被弃用 但在所有主要 次要和非常次要的浏览器中具有一致的行为 他们现在工作并且将来会工作 我不是在谈论optional标签
  • 如何在nodejs中将二进制缓冲区保存到png文件?

    我有包含位图信息的二进制nodejs Buffer 对象 如何从缓冲区中生成图像并将其保存到文件中 Edit 我尝试使用文件系统包 如 herchu 所说 但如果我这样做 let robot require robotjs let fs r
  • 在 golang 中创建静态二进制文件所需的标志

    我正在使用构建 Docker 镜像scratch作为基础 以下构建命令 RUN go build o go bin myapp 创建了一个执行时一直失败的二进制文件 standard init linux go 211 exec user
  • 在 PHP 中强制下载图像。在本地工作但在实时 Linux 服务器上崩溃

    我正在通过我的网站强制下载图像 强制下载在 Apache Windows 开发机器上运行良好 然而 当它在我的 Linux Web 服务器上运行时 它会将垃圾字符推送到屏幕上 e g JFIF H H 6Exif MM 火狐浏览器 垃圾 铬
  • 配置管理器和静态类

    我想用ConfigurationManager从 a 访问一些字符串值static班级 但是 我需要专门处理缺少值或存在空值的情况 现在我正在使用类型初始值设定项 例如 private static readonly string some
  • 如何从 DynamoDB 中的地图列表中删除(必须是原子的)

    我有这个架构 product S Primary Key my Hash media L List of Maps 每个媒体项目将如下所示 id S for example id uuid type S for example image
  • CAS 不适用于 VS2010 映射驱动器

    我有一个使用亚音速的项目 该项目是我在 Visual Studio 2008 中开发的 位于 C 驱动器上 那里没问题 我刚刚升级到 Visual Studio 2010 由于我的计算机碰巧死机了 我现在运行的是使用 VirtualBox
  • Java从char数组中删除重复项的方法

    我有一个由用户填充的字符数组 arrayInput 带有一些字符 例如 b d a b f a g a a f 我需要创建一个方法 该方法返回一个新的 char 数组 其中仅包含该字符的第一次出现 但按照输入的顺序 这本书还说 解决这个问题
  • 从 Kotlin Native 子类化 UIView

    UIKit 被设计为通过子类和重写方法来使用 通常 drawRectUIView 的 Objective C 方法在 SWIFT 中是这样实现的 import UIKit import Foundation class SmileView
  • 使用 TwitPic + OAuth 将照片 + 推文上传到 Twitter (.NET C#) - 为什么没有推文?

    我正在将照片上传到 TwitPic 使用OAuth 来自用 C 编写的 NET 应用程序 oAuth 的东西有点棘手 我找到了两段 NET 代码来处理它 但都不满意 DotNetOpenAuth看起来很重 超出了我的需要 只想进行 oAut
  • 索引操作删除属性

    显然 用属性索引列表会返回不带属性的列表 gt l lt list a 1 3 b 7 gt attr l x lt 67 gt l a 1 1 2 3 b 1 7 attr x 1 67 gt l c a b a 1 1 2 3 b 1
  • 我的带有表单身份验证的 ASP.NET MVC2 应用程序甚至阻止对图像、样式和脚本的访问

    我正在开发一个 MVC2 应用程序并在其上使用表单身份验证 脚本 图像和样式都被阻止给未登录的用户 因此 登录页面看起来很糟糕 它在本地运行良好 问题是当我发布到服务器时 有谁知道为什么吗 PS 服务器IIS版本为7 5 My 网页配置
  • 对象到对象映射实用程序

    我喜欢将公共和域完全分开objects 所以 nHibernate 在这里不会提供帮助 这最终迫使我编写大量代码来将一个对象映射到另一个对象 有哪些工具 插件可以消除在 NET 中手动执行此映射的单调乏味 每当我 Google 搜索此内容时
  • 使用 tr1::regex 时出现链接器错误

    我有一个程序使用tr1 regex 当它编译时 它给了我非常详细的链接器错误 这是我的头文件 MapObject hpp include
  • SQL Server 查询优化:Where (Col=@Col 或 @Col=Null)

    不知道从哪里开始 不确定问题是否是我欺骗了查询优化器 或者它是否是涉及空值时索引工作方式的固有问题 我遵循的一种编码约定是对存储过程进行编码 如下所示 declare procedure SomeProc ID int null as se
  • 使用 Worklight Console 部署应用程序失败:“无法部署应用程序 .wlapp”。:错误

    我正在使用 Worklight 5 0 6 20130311 0918 在 RedHat Linux 上的 WebSphere 应用程序服务器 7 0 0 21 上运行 并且我正在尝试使用 Worklight Console 部署应用程序
  • Javascript 焦点和选择在 FF 中不起作用

    使用jQuery 以下在FF中不起作用 但在IE中有效 this focus select 我环顾四周 发现你可以使用超时来解决这个问题 但如果我可以避免的话 这不是我想做的事情 有谁知道另一种方法来做到这一点并让它在 FF 中工作 都会
  • SQL Server 跟踪日期变化时的计划班次

    我什至不知道从哪里开始解决这个问题 我需要从我们的 MS SQL 2012 数据库查询生产数据 该数据库具有基于记录的班次的日期时间戳 棘手的部分是我们运行 4 个 12 小时班次采用 2 开 2 关 3 开 2 关的模式 即 2013 年