type example dt_wstr dt_str dt_numeric dt_decimal data convert conversion cast sql datetime ssis

sql - example - cómo convertir datetime2 como datetime



ssis convert dt_wstr to dt_str (3)

Estás lanzando a timestamp en tu código. Cambiar a datetime

SELECT CAST(offer_start_date AS datetime) FROM [ODS].[macaclient_offers]

Estoy tratando de convertir datetime2 a datetime para crear un estándar entre diferentes fuentes usando solo SQL o SSIS Tome la siguiente consulta SQL como ejemplo:

SELECT CAST(offer_start_date AS datetime) FROM [ODS].[macaclient_offers]

Me aparece el siguiente error: ''La conversión explícita del tipo de datos datetime2 a timestamp no está permitida''.

Además, logré convertir datetime2 en una fecha usando un elenco simple.

¿Cuál es la forma correcta de convertir datetime2 a datetime usando SQL Server 2008 o SSIS?

Gilibi


La instrucción de selección de muestra está intentando convertir offer_start_date en timestamp not datetime.

Si desea un valor de marca de tiempo de su columna datetime2, puede usar la función DatePart para recuperar partes de la fecha y compilarla usted mismo.

Por ejemplo:

declare @date datetime2 set @date = GETUTCDATE() select @date, DATEPART(hour, @date), DATEPART(minute, @date), DATEPART(second, @date)

Referencia de MSDN a la función DatePart .

No estoy seguro de por qué está recibiendo ese error, no he tenido el mismo problema. El siguiente ejemplo funciona bien en mi 2008 Management Studio.

create table #temp ( OrderId int, OrderDate datetime2 ) insert into #temp (OrderId, OrderDate) values (1, GetUTCDate()) select *, CAST(OrderDate as datetime) from #temp drop table #temp


OK, logré lograr eso usando un componente de conversión de datos SSIS. Descubrí que puedo usar DT_DBTIME2 o DT_DBTIME

Gracias a todos los que ayudaron