sql-server - 在日期之间排除
问题描述
我有 2 个日期@StartDate
,@EndDate
我有一个表,其中存储了特定员工结构的轮班日期,如下所示。
EmpCode ShiftCode StartDate EndDate
1 24 2019-10-01 2019-10-12
1 26 2019-10-13 2019-10-20
如果我提供@startDate
='2019-10-01'
和@endDate
='2019-10-15'
它不应该得到以下数据,我想排除日期在所提供日期之间的行。
如果提供的参数分别是'2019-10-21'
和,'2019-10-31'
那么它应该给我员工代码,因为它的班次没有在这些日期定义,我可以添加它。
这是我迄今为止尝试过的,但它没有返回预期的结果。
SELECT
EmpCode
FROM
TABLE
WHERE
[Roster].[EndDate] NOT BETWEEN @startDate AND @endDate OR
[Roster].[EndDate] NOT BETWEEN @startDate AND @endDate
解决方案
由于 Shikar 删除了他的帖子,简单的解决方案是......
...
WHERE
@startDate NOT BETWEEN [Roster].[StartDate] AND [Roster].[EndDate] AND
@endDate NOT BETWEEN [Roster].[StartDate] AND [Roster].[EndDate]
推荐阅读
- android - Android - 将对象彼此放在相对布局上
- javascript - 如何隐式调用和覆盖javascript函数
- hybris - 在产品详细信息页面中评估折扣促销
- geolocation - ionic 3 中只允许安全来源
- python - Python-Django 程序在 Postman 中工作但无法连接到 iOS 应用程序
- visual-studio-2012 - Visual Studio 2017 项目在 VS 2012 中不起作用
- java - 如何在 2 个实体之间使用 foreach
- sql-server - 在不导入链接表的情况下从 .ADP 更新到 .ACCDB?
- android - 更改 Android 日历事件的颜色
- apache-spark - 火花错误:java.lang.NoClassDefFoundError:org/apache/spark/sql/sources/v2/StreamWriteSupport