sql >> Base de Datos >  >> RDS >> Oracle

Marca de tiempo de Oracle para el servidor sql DateTime

Lo siguiente funciona en SQL Server 2008 (SQL Fiddle ):

select convert(datetime, left(t, 10), 105) +
       convert(time, substring(t, 12, 12), 114)
from (select '01-11-1999 09:22:16.162632' as t) t;

Irónicamente, no funciona en SQL Server 2012. Ahí, creo que tienes que hacer:

select dateadd(ms, datediff(ms, 0,  convert(datetime, substring(t, 12, 12), 114)),
               convert(datetime, left(t, 10), 105)
              )
from (select '01-11-1999 09:22:16.162632' as t) t;

Tenga en cuenta que en ambos casos, esto usa milisegundos en lugar de microsegundos. No creo que SQL Server ofrezca valores de fecha y hora con tanta precisión.