获取两个日期之间的时间

用户1899289003

我有下表:

Id  Start                End
1   2019-01-28 07:00:00  2019-01-28 17:00:00
2   2019-01-28 17:01:00  2019-01-28 02:00:00

我想要做的是检查我运行查询时当前时间是否介于 id 1 或 2 之间。这是我的查询。

SELECT Id FROM MyTableName 
WHERE CONVERT(varchar(5), GETDATE(), 108)
BETWEEN CONVERT(varchar(5), Start, 108) AND
CONVERT(varchar(5), End, 108)

如果我从 07 小时到 17 小时(Id 1)运行查询,目前工作正常,但是当我在 17:01 之后尝试查询时,查询没有显示任何结果。玩我的查询,我发现这是因为 02:00 小时(id 2,02:00 表示凌晨 2 点)。

我该如何处理?

马特·谢泼德

根据您在评论中给出的反馈,我认为在不使用表的情况下在单个查询中实现您想要的内容的最佳方法实际上是可能的。

SELECT CASE 
WHEN (GETDATE() > SMALLDATETIMEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE()), 7, 00)) AND (GETDATE() < SMALLDATETIMEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE()), 17, 00)) THEN 1 
WHEN (GETDATE() > SMALLDATETIMEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE()), 4, 00)) AND (GETDATE() < SMALLDATETIMEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), DAY(GETDATE())+1, 2, 00)) THEN 2
ELSE NULL END AS ID

如果时间在 07:00 和 17:00 之间,上面的查询将返回 ID 1,如果时间在 17:00 和 02:00(第二天)之间,则返回 ID 2,如果时间在这两个窗口之外,则返回 NULL .

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

获取两个日期之间的天数

Java 8 LocalDateTime-如何获取两个日期之间的所有时间

获取两个日期时间变量之间的小时数列表

获取两个日期时间之间的时差

mysql-如何获取两个时间范围之间的随机时间(而非日期)

PHP-以秒为单位获取两个日期时间之间的差异

使用矩获取两个日期时间之间的时差hh:mm

获取每个时间行在两个日期之间的范围内的计数

如何获取两个时间间隔之间的星期五日期

如何正确使用ThreeTenABP获取基于UTC的两个日期之间的时间(以毫秒为单位)

获取两个日期之间的日期

两个日期之间的日期和时间增量

给定时间的两个日期之间的日期范围

如何获取两个日期和时间之间的时差并显示时间用完

获取两个日期之间的周期

在两个日期时间熊猫之间获取datetime64 [ns]

以月为单位获取两个日期时间之间的天数(以熊猫为单位)

将两个舍入设置为2,以小时为单位获取日期时间之间的时差

Laravel 7:获取两个日期之间的行,列为日期时间

获取两个日期之间的天数

两个日期时间之间的差

如何获取两个Java日期之间的天数,同时比较日期和时间

PHP的两个日期之间的时间是

计算两个日期时间角度之间的时间

PHP - 计算两个日期时间之间的时间渲染

以微秒精度获取两个日期时间之间的差异

如何在 Laravel 中获取两个日期和时间之间的数据

获取两个日期之间的差异?

获取两个日期之间的持续时间(Moment JS)