как использовать datetime2 как datetime
Я пытаюсь преобразовать datetime2 в datetime, чтобы создать стандарт между различными источниками, используя только SQL или SSIS В качестве примера возьмем следующий SQL-запрос:
SELECT CAST(offer_start_date AS datetime)
FROM [ODS].[macaclient_offers]
Я получаю следующую ошибку: 'Явное преобразование типа данных datetime2 в метку времени не допускается.'
кроме того, мне удалось преобразовать datetime2 в date с помощью простого приведения.
Как правильно преобразовать datetime2 в datetime с помощью SQL Server 2008 или SSIS?
gilibi
3 ответов
вы бросаете в timestamp
в коде. Изменить на datetime
.
SELECT CAST(offer_start_date AS datetime) FROM [ODS].[macaclient_offers]
ваш пример инструкции select пытается отбросить offer_start_date в отметку времени, а не datetime.
Если вам нужно значение метки времени из столбца datetime2, вы можете использовать функцию DatePart для извлечения частей даты и создания ее самостоятельно.
например:
declare @date datetime2
set @date = GETUTCDATE()
select @date,
DATEPART(hour, @date),
DATEPART(minute, @date),
DATEPART(second, @date)
MSDN ссылка на DatePart
OK, мне удалось выполнить это с помощью компонента преобразования данных SSIS. Я узнал, что могу использовать DT_DBTIME2 или DT_DBTIME
спасибо всем, кто помог