将nvarchar数据类型转换为datetime数据类型

时间:2015-04-11 11:14:31

标签: sql sql-server datetime nvarchar

我有如下查询:

select 
  ...
 convert(VARCHAR(10), DATEADD(day,t.DAYNUMBER,t.START_DATE), 103) AS END_DATE
 where END_DATE >=  GETDATE()

显示以下错误:

  

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

日.DAYNUMBER来自:

select max([day]) from TOUR_SPECIFIKA 

其中day为int。并且t.START_DATE是日期。我不知道为什么它显示nvarchar错误。

1 个答案:

答案 0 :(得分:0)

如果您有此代码:

select ...,
       convert(VARCHAR(10), DATEADD(day, t.DAYNUMBER, t.START_DATE), 103) AS END_DATE
where END_DATE >= GETDATE()

您收到该特定错误,然后t.START_DATEt.END_DATEnvarchar()而非某些日期/时间数据类型。其中一列包含无效日期。

请注意,where子句中的引用是指其中一个表中的列。它不是 SELECT中的别名的引用。