根据抛出转换错误的给定日期范围从SQL获取数据

时间:2015-09-03 10:25:08

标签: sql-server

在我的应用程序中,我试图从数据库中获取数据,在给定记录范围内的记录中。

下面给出的是我用于获取数据的查询以及我从SQL服务器获取的错误。

查询

*.pid

错误

  

将varchar数据类型转换为日期时间数据类型会导致超出范围的值。

表中的值如下:

enter image description here

列的数据类型是varchar。 我尝试了很多解决方案,但找不到任何相关的答案。如果有人可以帮我解决这个问题。

提前致谢!

2 个答案:

答案 0 :(得分:0)

您的问题似乎是您的SQL Server使用美国日期m / d / y。你应该使用标准格式yyyy-mm-dd,它应该始终有效。

因此,对于您的查询,请尝试:

select * 
from table_name 
where CAST(RequestCreatedOn as DateTime) BETWEEN '2015-08-31 12:00:00.000' AND '2015-09-15 12:00:00.000'

您还应该使用最合适的数据类型o我很想将表格中的数据类型更改为日期时间。

答案 1 :(得分:0)

尝试在比较前使用convertion:

    SELECT 
        * 
    FROM table_name 
    WHERE RequestCreatedOn BETWEEN CONVERT(DATETIME, '31-08-2015 12:00:00.000',105) 
      AND CONVERT(DATETIME, '15-09-2015 12:00:00.000',105)