Тип операнда cla sh: datetime2 несовместим с int, при использовании convert NVARCHAR - PullRequest
0 голосов
/ 30 января 2020

Я не могу сохранить это представление из-за ошибки. Я не использую приведение, потому что я думал, что это не было необходимо. Я новичок в T- SQL и совершенно не знаю, как отследить источник ошибки, поскольку SSMS не дает никаких подсказок:

SELECT        TOP (100) PERCENT TLInstance, Data, MONTH(Timestamp - 1) AS RPTMth, Timestamp
FROM            dbo.VIEW_TLData
WHERE        (Timestamp BETWEEN CONVERT(DATE, { fn CONCAT(CONVERT(NVARCHAR, CASE WHEN MONTH(GETDATE()) = 1 THEN YEAR(GETDATE()) - 1 ELSE YEAR(GETDATE()) END), '-02-01') }, 102) AND CONVERT(DATE, 
                         { fn CONCAT(CONVERT(NVARCHAR, CASE WHEN MONTH(GETDATE()) = 1 THEN YEAR(GETDATE()) ELSE YEAR(GETDATE()) END + 1), '-02-01') }, 102)) AND (DAY(Timestamp) = 1) OR
                         (Timestamp BETWEEN CONVERT(DATE, { fn CONCAT(CONVERT(NVARCHAR, CASE WHEN MONTH(GETDATE()) = 1 THEN YEAR(GETDATE()) - 1 ELSE YEAR(GETDATE()) END), '-02-01') }, 102) AND CONVERT(DATE, 
                         { fn CONCAT(CONVERT(NVARCHAR, CASE WHEN MONTH(GETDATE()) = 1 THEN YEAR(GETDATE()) ELSE YEAR(GETDATE()) END + 1), '-02-01') }, 102)) AND (DAY(Timestamp) = 1) AND (TLInstance = '238' OR
                         TLInstance BETWEEN '255' AND '259' OR
                         TLInstance = '289' OR
                         TLInstance = '421' OR
                         TLInstance = '426' OR
                         TLInstance = '427' OR
                         TLInstance = '428' OR
                         TLInstance = '429' OR
                         TLInstance = '430' OR
                         TLInstance = '431' OR
                         TLInstance = '433' OR
                         TLInstance = '441' OR
                         TLInstance = '442' OR
                         TLInstance = '444' OR
                         TLInstance = '491')
ORDER BY TLInstance

Есть идеи, что я делаю неправильно?

...