sql选择日期范围返回超出范围的日期

sql选择日期范围返回超出范围的日期,sql,sql-server,Sql,Sql Server,根据日期选择大量记录,但我得到的返回日期不在范围内。有什么想法吗 SELECT * FROM TABLE WHERE ( PAYMENT_DATE >= CONVERT(DATETIME, '2010-05-06') AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-11-11') ) 选择* 从桌子上 在哪里( 付款日期>=转换(日期时间,'2010-05-06') 付款日期试试看 这必须给出预

根据日期选择大量记录,但我得到的返回日期不在范围内。有什么想法吗

SELECT *
FROM TABLE
WHERE (
        PAYMENT_DATE >= CONVERT(DATETIME, '2010-05-06')
        AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-11-11')
        )
选择*
从桌子上
在哪里(
付款日期>=转换(日期时间,'2010-05-06')

付款日期试试看

这必须给出预期的结果

 SELECT *
   FROM table
  WHERE (Convert(datetime,PAYMENT_DATE,103) >= CONVERT(datetime, '2010-05-06') 
    AND Convert(datetime,PAYMENT_DATE,103) <= CONVERT(datetime, '2013-11-11'))
选择*
从桌子上
其中(转换(日期时间,付款日期,103)>=转换(日期时间,'2010-05-06')

转换(datetime,PAYMENT_DATE,103)试试这个

这必须给出预期的结果

 SELECT *
   FROM table
  WHERE (Convert(datetime,PAYMENT_DATE,103) >= CONVERT(datetime, '2010-05-06') 
    AND Convert(datetime,PAYMENT_DATE,103) <= CONVERT(datetime, '2013-11-11'))
选择*
从桌子上
其中(转换(日期时间,付款日期,103)>=转换(日期时间,'2010-05-06')

转换(datetime,PAYMENT_DATE,103)试试这个

这必须给出预期的结果

 SELECT *
   FROM table
  WHERE (Convert(datetime,PAYMENT_DATE,103) >= CONVERT(datetime, '2010-05-06') 
    AND Convert(datetime,PAYMENT_DATE,103) <= CONVERT(datetime, '2013-11-11'))
选择*
从桌子上
其中(转换(日期时间,付款日期,103)>=转换(日期时间,'2010-05-06')

转换(datetime,PAYMENT_DATE,103)试试这个

这必须给出预期的结果

 SELECT *
   FROM table
  WHERE (Convert(datetime,PAYMENT_DATE,103) >= CONVERT(datetime, '2010-05-06') 
    AND Convert(datetime,PAYMENT_DATE,103) <= CONVERT(datetime, '2013-11-11'))
选择*
从桌子上
其中(转换(日期时间,付款日期,103)>=转换(日期时间,'2010-05-06')

和Convert(datetime,PAYMENT_DATE,103)此外,您可以通过名称或缩写指定月份,如下所示:

SELECT *
FROM TABLE
WHERE (
            PAYMENT_DATE >= CONVERT(DATETIME, '2010-May-06')
        AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-Nov-11')
        )

此外,您还可以通过名称或缩写指定月份,如下所示:

SELECT *
FROM TABLE
WHERE (
            PAYMENT_DATE >= CONVERT(DATETIME, '2010-May-06')
        AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-Nov-11')
        )

此外,您还可以通过名称或缩写指定月份,如下所示:

SELECT *
FROM TABLE
WHERE (
            PAYMENT_DATE >= CONVERT(DATETIME, '2010-May-06')
        AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-Nov-11')
        )

此外,您还可以通过名称或缩写指定月份,如下所示:

SELECT *
FROM TABLE
WHERE (
            PAYMENT_DATE >= CONVERT(DATETIME, '2010-May-06')
        AND PAYMENT_DATE <= CONVERT(DATETIME, '2013-Nov-11')
        )

使用SQLBEVERY子句检查范围是很好的

 SELECT *
   FROM table
  WHERE PAYMENT_DATE BETWEEN CONVERT(datetime, '2010-05-06')
                         AND CONVERT(datetime, '2013-11-11')

使用SQLBEVERY子句检查范围是很好的

 SELECT *
   FROM table
  WHERE PAYMENT_DATE BETWEEN CONVERT(datetime, '2010-05-06')
                         AND CONVERT(datetime, '2013-11-11')

使用SQLBEVERY子句检查范围是很好的

 SELECT *
   FROM table
  WHERE PAYMENT_DATE BETWEEN CONVERT(datetime, '2010-05-06')
                         AND CONVERT(datetime, '2013-11-11')

使用SQLBEVERY子句检查范围是很好的

 SELECT *
   FROM table
  WHERE PAYMENT_DATE BETWEEN CONVERT(datetime, '2010-05-06')
                         AND CONVERT(datetime, '2013-11-11')

不使用参数时,请始终使用不变日期时间格式:

 SELECT *
   FROM [Table]
  WHERE ([PaymentDate] >= '20100506' AND [PaymentDate] <= '20131111')
选择*
从[表]

其中([PaymentDate]>='20100506'和[PaymentDate]当您不使用参数时,始终使用不变日期时间格式:

 SELECT *
   FROM [Table]
  WHERE ([PaymentDate] >= '20100506' AND [PaymentDate] <= '20131111')
选择*
从[表]

其中([PaymentDate]>='20100506'和[PaymentDate]当您不使用参数时,始终使用不变日期时间格式:

 SELECT *
   FROM [Table]
  WHERE ([PaymentDate] >= '20100506' AND [PaymentDate] <= '20131111')
选择*
从[表]

其中([PaymentDate]>='20100506'和[PaymentDate]当您不使用参数时,始终使用不变日期时间格式:

 SELECT *
   FROM [Table]
  WHERE ([PaymentDate] >= '20100506' AND [PaymentDate] <= '20131111')
选择*
从[表]


其中([PaymentDate]>='20100506'和[PaymentDate]根据
convert
datetime
的用法,日期格式可能被视为YYYY-DD-MM而不是YYYY-MM DDAdded
sql server
标记-这是完整的查询还是您有其他谓词,可能包括
某个地方,这意味着where子句没有完全按照您的想法执行付款日期的数据类型实际上是
DATETIME
还是类似的?请注意包含的上限(
可能是基于
convert
datetime
的用法,日期格式被视为YYYY-DD-MM而不是YYYY-MM DDADED
sql server
标记-这是完整查询还是有其他谓词,可能包括
某个地方,这意味着where子句没有完全按照您的想法执行t是?付款日期的数据类型实际上是
DATETIME
还是类似的?请注意,包含的上限(
可能是基于
convert
datetime
的用法,日期格式被视为YYYY-DD-MM而不是YYYY-MM DDADED
sql server
标记-这是完整查询还是有其他谓词,可能包括
某个地方,这意味着where子句没有完全按照您的想法执行t是?付款日期的数据类型实际上是
DATETIME
还是类似的?请注意,包含的上限(
可能是基于
convert
datetime
的用法,日期格式被视为YYYY-DD-MM而不是YYYY-MM DDADED
sql server
标记-这是完整查询还是有其他谓词,可能包括
某个地方,这意味着where子句没有完全按照您的想法执行t是?付款日期的数据类型实际上是
DATETIME
还是类似的?请注意,包含的上限(
我不同意使用BETWEEN,因为本文中的原因-
BETWEEN
或包含的上限(
我不同意在本文中使用BETWEEN的原因-
BETWEEN
或包含的上限(
我不同意在本文中使用BETWEEN的原因-
BETWEEN
或包含的上限(
我不同意在本文中使用BETWEEN,原因是-
BETWEEN
或包含的上限(
@GarethD是的,但是它可以被转换成错误的语言。例如,将语言设置为德语或捷克语将交换天和月。这仍然不能解释
2008-04-10 00:00:00.000
,但它确实会搞砸比较-
2010-04-10
现在比
2010-05-06
大,不好。@D-W您必须添加更多信息信息。添加示例表定义、示例数据、示例查询,并确保出现错误。SQL FIDLE对此也非常方便。@GarethD是的,但它可能转换错误。例如,将语言设置为德语或捷克语将交换天和月。这仍然不能解释
2008-04-10 00:00:00.000
,但它确实可以查看比较-
2010-04-10
现在比
2010-05-06
大,不太好。@D-W您必须添加更多信息。添加样本表定义、样本数据、样本查询,并确保出现错误。SQL FIDLE对此也非常方便。@GarethD是的,但它可能转换错误。例如,设置lang德语或捷克语的uage将互换天数和月份。这仍然不能解释
2008-04-10 00:00:00.000
,但它确实会影响你