SQL Server 按时间段查询数据 表内时间为空时怎么处理?

假设我的存储过程名称为mysp_select_sth,表名称为MyTable;现在我想通过[时间]范围来查找一条数据;查找的时候我的做法是:1、如果查找条件栏起始时间无输... 假设我的存储过程名称为mysp_select_sth,表名称为MyTable;现在我想通过[时间]范围来查找一条数据;查找的时候 我的做法是:1、如果查找条件栏起始时间无输入则赋值@DateStart = “1949-10-1”(很早之前)2、如果查找条件栏起始时间无输入则赋值@DateStart = “2949-10-1”(很晚之后) 这样我就能找到对应的记录了,但是现在有一个问题就是:如果表里面的[时间]没有数据时,我希望忽略掉这个查询条件,请问该如何来做呢?万分感谢!注:上句的意思大致为:如果表里面的[时间]更新了,我希望能通过[时间]来查找到这条数据;如果[时间]没更新,我希望通过其他条件来找到该数据,来更新时间;我的存储过程大致代码如下: CREATE PROCEDURE [dbo].[mysp_select_sth] @NO nvarchar(20), @DateStart DATETIME, @DateEnd DATETIMEASSET NOCOUNT ON SELECT * FROM [MyTable] WHERE (isnull(@NO,'')='' or [序号] = @NO) AND ([时间] >= @DateStart) AND ([时间] <= @DateEnd)
- -。刚才没测试好就采纳了,不是故意重复提问~~
@frogley
接追问部分。。。
上述方法实现:
1、当查找的时候限制了时间段,时间为空的依然显示出来了,(可以滤掉不符合时间段的数据)
2、符合意图
比如说:我限制了时间段为1-1到1-9号,[时间]①没有数据的显示了出来,②符合这个时间段的显示了出来,③不符合的没有显示出来
想要去掉①,让①不显示,有办法吗?
展开
 我来答
frogley
推荐于2020-12-17 · TA获得超过1854个赞
知道小有建树答主
回答量:1008
采纳率:50%
帮助的人:1084万
展开全部

呃,刚才就是我答的。

CREATE PROCEDURE [dbo].[mysp_select_sth](         
@NO nvarchar(20),
@DateStart DATETIME,
@DateEnd DATETIME )
AS
SET NOCOUNT ON
SELECT *
FROM
    [MyTable]
WHERE
    (isnull(@NO,'')='' or [序号] = @NO)
    AND (isnull([时间],'')='' or [时间] >= @DateStart)
    AND (isnull([时间],'')='' or [时间] <= @DateEnd)

这段代码,你测试有什么问题呢?

更多追问追答
追问
我要按时间段来查找的话,时间段的限制没有效果,就是说
AND (isnull([时间],'')='' or [时间] >= @DateStart)
AND (isnull([时间],'')='' or [时间] <= @DateEnd)
这部分一直是true;
追答
不会啊,我测试过这段代码的。如果时间不为null,且时间不位于@DateStart和@DateEnd之间的时候,这个条件为假。

你把[时间]、@DateStart和@DateEnd这三个值都打印出来看看呢?
传奇勇者
2014-01-13 · TA获得超过747个赞
知道大有可为答主
回答量:1706
采纳率:75%
帮助的人:814万
展开全部
你的这个设计思路有问题,在数据库中,对于同等一个时间,没有更新非更新之说。
你如果要实现这种功能的话,可能需要多个时间,比如提交时间,审批时间,更新时间等等的。
追问
我的更新的意思是说,原来在这个[ 时间]的值是空的,我往上写数据(DATETIME),比如:2014-1-13,这样的更新(使用到了update);- -这个设计思路应该没啥问题吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林梦之初
2014-01-13
知道答主
回答量:20
采纳率:0%
帮助的人:9.5万
展开全部
加个条件 时间不为空 就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式