我想得到这个连接查询在过去30天内的结果。
V.[4501001]
包含此格式的nvarchar日期
dd/mm/yyyy
我的问题是:
(select Distinct T.PId from [dbo].[TrialStatus] T inner join
form.TP_VISDATE V on T.pid = V.pid
where T.cid = 1064 and T.sid = 300 and (Convert(NVARCHAR, V.[4501001], 103) < Convert(NVARCHAR,GETDATE(),103)) and (Convert(NVARCHAR, V.[4501001], 103) > DATEADD(DD,-30,Convert(NVARCHAR,GETDATE(),103))))
如果我用
Convert(NVARCHAR,GETDATE(),103)
我得到错误的结果是因为
select DATEADD(Day,-30,Convert(NVARCHAR,GETDATE(),103))
回报
2018-01-08 00:00:00.000
而不是前30天
但是如果我用
GETDATE()
在没有转换的情况下,我得到这个错误:
将nvarchar数据类型转换为datetime数据类型导致值超出范围。