我有如下查询:
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错误。
答案 0 :(得分:0)
如果您有此代码:
select ...,
convert(VARCHAR(10), DATEADD(day, t.DAYNUMBER, t.START_DATE), 103) AS END_DATE
where END_DATE >= GETDATE()
您收到该特定错误,然后t.START_DATE
或t.END_DATE
为nvarchar()
而非某些日期/时间数据类型。其中一列包含无效日期。
请注意,where
子句中的引用是指其中一个表中的列。它不是 对SELECT
中的别名的引用。