gpt4 book ai didi

c# - 如何在查询 C# 中检查开始日期和结束日期之间的多个日期

转载 作者:行者123 更新时间:2023-11-29 04:15:38 26 4
gpt4 key购买 nike

在 C# 中工作。我有两个名为 start_date_enteredend_date_entered 的日期对象,我的表中有两列 start_dateend_date。我必须查询我的表,如果 start_date_enteredend_date_entered 之间的任何日期出现在 start_dateend_date 之间>.

DateTime start_date_entered = Convert.ToDateTime('01/01/2018 12:00:00 AM');
DateTime end_date_entered = Convert.ToDateTime('03/01/2018 12:00:00 AM');

数据库列 start_date 包含 3 月 25 日,end_date 包含 3 月 27 日。如果两个序列有任何共同的日期,则不应从数据库返回任何行。如果两个序列之间有任何共同的日期,那么数据库应该返回该行。

select * from employee_leaves where ... between start_date and end_date

我应该在“...”中写什么,因为我想在此处放置 start_date_enteredend_date_entered 之间的一系列日期

这些我都试过了

Fetching Dates Which Comes Between StartDate and EndDate

How to list all dates between two dates [duplicate]

但是还没有找到任何解决方案。

最佳答案

如果您正在查询与给定时间范围(开始/结束)相交的所有内容 - 尝试可视化您想要包括的所有可能性;例如:

       |<--range-->|
| |
[---+-----------+----] scenario 1 - starts before, ends after
| [---] | scenario 2 - starts and ends inside
| [-------+-----------] scenario 3 - starts inside, ends after
[---+-------] | scenario 4 - starts before, ends inside
| |

场景 2、3 和 4 将通过检查查询中是否有 either 端来处理;场景1需要单独处理;所以:

where x.Start between @start and @end
or x.End between @start and @end
or (x.Start < @start and x.End > @end)

请注意,between 是一个包含 的范围查询;如果您需要更多地控制边界条件,请使用您选择的不等式运算符将 between 扩展为一对明确的开始/结束限制。

关于c# - 如何在查询 C# 中检查开始日期和结束日期之间的多个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48683536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com