Конвертировать Bigint в Datetime SQL Server - PullRequest
0 голосов
/ 15 мая 2019

У меня есть таблица с полем Report_Date. Это поле типа bigint. У меня есть другая таблица с ReportDate, которая имеет тип datetime. Я хочу объединить данные из каждой таблицы, но я хочу, чтобы bigint был преобразован в дату и время.

Я пытался SELECT DATEADD(DD, convert(bigint, Report_Date), Report_date), однако я получаю сообщение об ошибке:

Ошибка арифметического переполнения при преобразовании выражения в тип данных datetime.

Я также пытался SELECT DATEADD(DD, convert(bigint, Report_Date), convert(datetime, Report_date)) с тем же результатом сообщения об ошибке.

Я ожидаю, что дата будет 2019-02-28 00:00:00.000.

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Для приведения bigint / int к datetime вам сначала нужно привести его к varchar.Вы можете сделать это, например, так:

select cast(cast(Report_Date as varchar(80)) as datetime)
1 голос
/ 16 мая 2019

Для вашего примера вам нужно сделать что-то вроде этого.

select convert(datetime, convert(char(8), 20190108))

Я не могу понять, что вы пытаетесь сделать со своей логикой DATEADD.

...