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

但我没有得到结果。请帮帮我。

sql查询,用于获取明确给定的两个日期之间的数据

您的日期应该是不同的类型而不是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