sql查询,用于获取明确给定的两个日期之间的数据
本文关键字:两个 数据 之间 日期 用于 查询 获取 sql | 更新日期: 2023-09-27 18:28:45
我想获得两个日期之间的数据,这些日期由用户提供。
我所做的如下
CREATE PROCEDURE getattndncchart
(
@date1 varchar(50),
@date2 varchar(50)
)
AS
SELECT * FROM Tbl_Date WHERE Date BETWEEN @date1 AND @date2
但我没有得到结果。请帮帮我。
您的日期应该是不同的类型而不是varchar(50),
吗?
我从来没有使用过程序,所以也许我错了。也许是这样的?
CREATE PROCEDURE getattndncchart
@date1 date,
@date2 date
AS
BEGIN
SELECT * FROM Tbl_Date WHERE [Date] BETWEEN @date1 AND @date2
END;
此外,WHERE
子句中的Date
需要被[ ]
包围(因为它是一个保留字)。
这里似乎有几个错误:
1) 正如Andrew所指出的,你无法比较不正确类型的日期。因此,您应该将这些值作为日期或日期时间从应用程序解析到存储过程中。
2) 为了进行日期比较,您必须有另一种日期类型进行比较。例如:
CREATE PROCEDURE getattndncchart
(
@date1 date,
@date2 date
)
AS
DECLARE @curdate date = CURRENT_TIMESTAMP
SELECT *
FROM Tbl_Date
WHERE @curdate BETWEEN @date1 AND @date2