sql:无法转换为Date

时间:2013-02-27 08:54:49

标签: sql sql-server

我有以下sql:

     select CONVERT(date,visitorannouncements.DateOfVisit), visitorannouncements.Agent,
            Firstname, visitors.Lastname 
       from Visitors

       LEFT JOIN visitorannouncements 
            ON Visitors.VisitorAnnouncementId=visitorannouncements.Id
      where ship = @shipname 
        AND convert(datetime, visitorannouncements.DateOfVisit,101) BETWEEN  @startDate AND @endDate

visitorannouncements.DateOfVisit是nvarchar字段。

我收到以下错误:

  

TITLE:Microsoft SQL Server报表生成器

     
     

发生错误   从查询结果集中读取数据。 nvarchar的转换   数据类型为日期时间数据类型导致超出范围的值。

     
     

其他信息:

     

将nvarchar数据类型转换为日期时间数据类型会导致超出范围的值。 (Microsoft SQL Server,错误:242)

2 个答案:

答案 0 :(得分:0)

尝试找出哪个visitorannouncements.DateOfVisit不是有效日期:

select *
from visitorannouncements
where isdate(DateOfVisit) = 0

答案 1 :(得分:0)

指定正确的style以匹配数据字符串。

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )