Sql server 简单选择查询不使用“AND”运算符

Sql server 简单选择查询不使用“AND”运算符,sql-server,tsql,Sql Server,Tsql,我正在制定一个时间表,所以我想运行一个查询,在数据库中执行检查,以查看特定开始时间和结束时间之间的所有类。用户将选择类的开始和结束时间,该类将以日期时间格式2017年3月2日00:00:00存储在标签中 我想运行一个查询来检查某个类,因此我想使用所选的开始时间来查看该类是否大于或等于此开始日期,但小于第二天2017年3月3日00:00:00。下面的查询工作正常,但我将使用参数化的值 我目前的查询是: SELECT * FROM Class WHERE (StartTime >='02/03

我正在制定一个时间表,所以我想运行一个查询,在数据库中执行检查,以查看特定开始时间和结束时间之间的所有类。用户将选择类的开始和结束时间,该类将以日期时间格式2017年3月2日00:00:00存储在标签中

我想运行一个查询来检查某个类,因此我想使用所选的开始时间来查看该类是否大于或等于此开始日期,但小于第二天2017年3月3日00:00:00。下面的查询工作正常,但我将使用参数化的值

我目前的查询是:

SELECT * FROM Class WHERE (StartTime >='02/03/2017 00:00:00') AND ( EndTime <= '03/03/2017 00:00:00' )
我所需的参数查询:

SELECT * FROM Class WHERE (StartTime >='@StartTime') AND ( EndTime <= '@EndTime' )

尝试不使用单引号:

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

尝试不使用单引号:

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

您必须删除引号

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

您的查询试图解析字符串@EndTime中的日期,您必须删除引号

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

您的查询试图从字符串@EndTime中解析日期,在@StartTime和@EndTime之间有引号。删除这些,这样下面的内容应该会给出正确的结果

declare
    @StartTime datetime = '2017-03-02 00:00:00.000',
    @EndTime datetime =  '2017-03-03 00:00:00.000'
SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )
也是为了满足您对

我只想将开始时间的值增加1天

这是密码

declare
    @StartTime datetime = '2017-03-02 00:00:00.000'

-- Add 1 day to start time to get the end date.
declare
    @EndTime datetime =  dateadd(day, 1,  @StartTime)

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

在@StartTime和@EndTime之间有引号。删除这些,这样下面的内容应该会给出正确的结果

declare
    @StartTime datetime = '2017-03-02 00:00:00.000',
    @EndTime datetime =  '2017-03-03 00:00:00.000'
SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )
也是为了满足您对

我只想将开始时间的值增加1天

这是密码

declare
    @StartTime datetime = '2017-03-02 00:00:00.000'

-- Add 1 day to start time to get the end date.
declare
    @EndTime datetime =  dateadd(day, 1,  @StartTime)

SELECT * FROM Class WHERE (StartTime >=@StartTime) AND ( EndTime <= @EndTime )

您可以声明开始时间和结束时间,您的请求是:


从StartTime>=@StartTime和EndTime可以声明StartTime和EndTime的类中选择*并且您的请求是:


从StartTime>=@StartTime和EndTime所在的类中选择*那么您的错误是什么?我理解正确吗?我当前的查询可以工作,但带有参数的查询不能工作?我希望它可以使用参数化的值。我想对这两个部分都使用开始时间,但我只想将开始时间的值增加1天,以便它满足我的查询范围。我在下面的链接上尝试了这个方法,但是没有用。你需要修复你的日期字符串。它们也不会总是按照你想要的方式来解释。它应该是yyyy-mm-dd。这是ANSI标准顺序,与语言无关。这是唯一一种永远有效的格式。根据帖子,不可能知道这是2月3日还是3月2日。那么你的错误是什么?我理解正确吗?我当前的查询可以工作,但带有参数的查询不能工作?我希望它可以使用参数化的值。我想对这两个部分都使用开始时间,但我只想将开始时间的值增加1天,以便它满足我的查询范围。我在下面的链接上尝试了这个方法,但是没有用。你需要修复你的日期字符串。它们也不会总是按照你想要的方式来解释。它应该是yyyy-mm-dd。这是ANSI标准顺序,与语言无关。这是唯一一种永远有效的格式。根据帖子,不可能知道这是2月3日还是3月2日。和