Я хочу получить результаты этого запроса на присоединение за последние 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 привело к значению вне допустимого диапазона.