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
Instrucciones del ejercicio
- Completa el nombre de la función
TRY_XXX()que falta dentro de la expresión de tabla comúnEventDates. - Convierte las fechas de evento
EventDateOffseta'UTC'. Llama a esta salidaEventDateUTC. - Convierte las fechas de evento
EventDateOffseta'US Eastern Standard Time'usandoAT TIME ZONE. Llama a esta salidaEventDateUSEast.
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;