【发布时间】:2014-01-23 23:42:17
【问题描述】:
在 SQL Server 2005 中,我有这个要求,我可以在其中获取某些活动的开始和结束日期。
另外,一天中有两个时间段,例如从早上 5 点到早上 9 点和从下午 2 点到下午 6 点,我需要找出这个开始和结束日期在这些时间段内的分钟数。
例如,如果开始时间是 2014 年 1 月 24 日上午 6:30,结束时间是另一天,即 25-01-2014 上午 11 点。结果应该是 24 日上午 9 点 - 6:30,所以 150 分钟和晚上满时段,所以第二天早上 240 分钟满时段,所以 240 分钟
总计 = 150 + 240 + 240。
我正在尝试编写一个函数并在我的查询中使用它。我会将开始和结束日期传递给我的函数。
感谢任何帮助。
我已经开始编写代码,但是它有太多的条件,所以我想最好向比我了解更多 SQL 的人寻求建议。
让我试着解释得更好。
我有两个日期,一个是开始日期,另一个是结束日期,两者都有时间。
现在一天中有两个时间段我感兴趣,想知道这两个日期之间有多少分钟属于这些时间范围。
因此,如果每天的时间段是上午 5 点到 9 点和下午 16 点到 20 点。
我的开始日期和结束日期在这两个时段中的多少分钟?
所以如果开始日期是 24/01/2014 6:30,结束日期是 24/01/2014 17:30。
因此,这两个日期使用 9 - 6:30,因此从第一个时间段 5 点到上午 9 点为 2 小时 30 分钟,而 17:30 - 16:00 = 从第二个时间段开始的 1 小时 30 分钟。
这些开始和结束日期可以是同一天的任何日期,也可以是第二天或之后的 n 天。
【问题讨论】:
-
我真的不清楚你是如何得出你的解决方案的 - 你能否更清楚地解释你的算法和所需的输出?
-
您好 user3230006。欢迎来到堆栈溢出。为了更快地获得帮助(并且严格中肯),请与我们一起明确您的问题:首先,向我们展示一些代码!你试过什么?你认为你的函数签名是什么?预期的结果是什么?
-
对不起 - 我也应该说欢迎!我没看到这是你的第一篇文章。
-
我已经开始编写代码,但是它有太多的条件,所以我想最好向比我了解更多 sql 的人寻求建议。让我尝试更好地解释。我有两个日期,一个是开始日期,另一个是结束日期,两者都有时间。现在一天中有两个我感兴趣的时间段,想知道这两个日期之间有多少分钟属于这些时间范围。所以如果每天的时间段是早上 5 点到 9 点和下午 16 点到 20 点。
-
我的开始日期和结束日期在这两个时段中的多少分钟?所以如果开始日期是 24/01/2014 6:30,结束日期是 24/01/2014 17:30。所以这两个日期使用 9 - 6:30,所以从早上 5 点到早上 9 点的第一个时间段有 2 小时 30 分钟,而从第二个时间段开始的 17:30 - 16:00 = 1 小时 30 分钟。这些开始日期和结束日期可以是同一天的任何日期,也可以是下一天或之后的 n 天。
标签: sql sql-server sql-server-2005