2

我是数据库新手,所以请忽略我的询问方式!

我有两个从日期命名的文本框,其中包含日历的日期,现在我想在网格视图中根据这些文本框中选择的特定日期从它们中获取数据。

我已经为此操作创建了存储过程,但我对我的存储过程不太确定。

这是我的存储过程

select * from cor_leave 
where dt_from >= @dt_from and dt_from <= @dt_to

我走对了,或者如果我做错了什么,请帮帮我?或者有什么办法可以解决我的问题???

4

3 回答 3

0

是的,你走对了。但是,请注意,dt_from必须是与数据类型兼容的数据类型date,以便为您提供您正在寻找的正确日期范围。

您也可以使用BETWEEN代替>=and <=

SELECT *
FROM cor_leave 
WHERE dt_from BETWEEN @dt_from AND @dt_to
于 2012-09-06T06:51:53.880 回答
0

您应该以这种方式查询:

select * from cor_leave 
where dt_from between @dt_from and @dt_to
于 2012-09-06T06:52:40.197 回答
0

除了其他答案外,您的dt_to遗体可能会发生NULL

在这种情况下,您的查询将不会带来@dt_to为空的记录。

为避免此类问题,请参阅以下查询:

SELECT * 
FROM cor_leave  
WHERE dt_from BETWEEN @dt_from AND ISNULL(@dt_to,dt_from) 
于 2012-09-06T09:45:50.590 回答