EmpezarEmpieza gratis

Convierte datos importados a fechas con zonas horarias

Ahora que hemos visto las tres funciones de conversión con control de tipos, podemos empezar a aplicarlas sobre conjuntos de datos reales. En este caso, vamos a analizar datos de la tabla dbo.ImportedTime. Usamos otra aplicación para cargar datos en esta tabla y la revisamos en un ejercicio anterior. Esta vez, recuperaremos datos de todas las filas, no solo de las que la aplicación de importación marcó como válidas.

Este ejercicio forma parte del curso

Análisis de series temporales en SQL Server

Ver curso

Instrucciones del ejercicio

  • Completa el nombre de la función TRY_XXX() que falta dentro de la expresión de tabla común EventDates.
  • Convierte las fechas de evento EventDateOffset a 'UTC'. Llama a esta salida EventDateUTC.
  • Convierte las fechas de evento EventDateOffset a 'US Eastern Standard Time' usando AT TIME ZONE. Llama a esta salida EventDateUSEast.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

WITH EventDates AS
(
    SELECT
        -- Fill in the missing try-conversion function
        ___(DATETIME2(3), it.EventDate) AT TIME ZONE it.TimeZone AS EventDateOffset,
        it.TimeZone
    FROM dbo.ImportedTime it
        INNER JOIN sys.time_zone_info tzi
			ON it.TimeZone = tzi.name
)
SELECT
    -- Fill in the approppriate event date to convert
	CONVERT(NVARCHAR(50), ed.EventDateOffset) AS EventDateOffsetString,
	CONVERT(DATETIME2(0), ed.EventDateOffset) AS EventDateLocal,
	ed.TimeZone,
    -- Convert from a DATETIMEOFFSET to DATETIME at UTC
	CAST(ed.EventDateOffset AT TIME ZONE '___' AS DATETIME2(0)) AS EventDateUTC,
    -- Convert from a DATETIMEOFFSET to DATETIME with time zone
	CAST(ed.EventDateOffset ___ ___ ___ 'US Eastern Standard Time'  AS DATETIME2(0)) AS EventDateUSEast
FROM EventDates ed;
Editar y ejecutar código