Как и в сообщении об ошибке, тип данных int
несовместим с типом данных date
. Фактически, числовое значение не может использоваться ни с одним из «новых» типов данных / времени (под «новыми» я подразумеваю типы, введенные в SQL Server 2008, такие как datetime2
, datetimeoffset
, date
).
datetime
, однако, совместим, но для новых приложений рекомендуется использовать datetime2
сверх datetime
. Однако если вам необходимо преобразовать числовое значение в date
, вам сначала нужно преобразовать его в datetime
или использовать вместо него DATEADD
.
С datetime
, ранее дата 0
представляла '1900-01-01'
. Таким образом, вместо CONVERT(date,DocDate)
вам нужно будет сделать DATEADD(DAY, DocDate , '19000101')
.
Вместо этого вы также можете использовать CONVERT(date, CONVERT(datetime,DocDate))
, но делать 2 преобразования кажется глупым.