首页 > 解决方案 > Sql Server - 从提供的范围内的数据库中获取日期

问题描述

如果范围内任何点(开始日期和结束日期)的 FtableID 的 StatusID=2,我在获取记录时遇到问题。

我的表结构是

ID FTableID StatusID AddedOn 75324 53591 1 2019-03-17 06:48:14.490 75325 53591 2 2019-03-18 06:48:14.663 75326 53591 3 2019-03-19 06:54:20.830

@StartDate Datetime='2019/03/17 23:00:00' ,            
@EndDate Datetime='2019/03/20 23:59:59' 

Select ID, FTableID,StatusID,AddedOn from MyTableName where FTableID=53591
And StatusID=2 and AddedOn <= @EndDate 

我知道我的查询是错误的,即使我在状态更改为3 ( Completed )后通过 @startdate 也会给出记录

我很困惑设置开始日期过滤器。

我需要检查此 FtableID 记录是否在提供的范围内的任何点处于状态 id =2

如果我通过 @StartDate Datetime='2019/03/18 23:00:00', @EndDate Datetime='2019/03/20 23:59:59' 应该会出现记录,因为它在这个范围内状态=2

记录不应该出现如果我通过 @StartDate Datetime='2019/03/19 23:00:00', @EndDate Datetime='2019/03/20 23:59:59' 因为它已转换为 statusID=3

请就此向我提出建议。提前致谢。

标签: sqlsql-server

解决方案


用这个

select * 
from YourTableName
where AddedOn between (@StartDate and @EndDate)
and StatusID=2

推荐阅读