我是数据库的新手,所以请不要理我的方式!
我有两个以日期和日期命名的文本框,其中包含日历,现在我想在网格视图中根据这些文本框中选择的特定日期从中获取数据。
我为此操作创建了存储过程,但我对存储过程不太了解。
这是我的存储过程
select * from cor_leave
where dt_from >= @dt_from and dt_from <= @dt_to
我正在朝着正确的方向前进,或者如果我做错了请帮助我吗? 或者有什么方法可以解决我的问题???
答案 0 :(得分:0)
是的,你说得对。但请注意,dt_from
必须是与数据类型date
兼容的数据类型,才能获得您正在寻找的正确日期范围。
您也可以使用BETWEEN
代替>=
和<=
:
SELECT *
FROM cor_leave
WHERE dt_from BETWEEN @dt_from AND @dt_to
答案 1 :(得分:0)
您应该以这种方式查询:
select * from cor_leave
where dt_from between @dt_from and @dt_to
答案 2 :(得分:0)
除了其他答案之外,您的dt_to
可能仍会NULL
。
在这种情况下,您的查询不会将@dt_to
的记录作为null。
要避免此类问题,请参阅以下查询:
SELECT *
FROM cor_leave
WHERE dt_from BETWEEN @dt_from AND ISNULL(@dt_to,dt_from)