SQL

Tipo de datos DATETIMEOFFSET de SQL Server para fecha y hora con la zona horaria

Estrada Web Group
Estrada Web Group
Tipo de datos DATETIMEOFFSET de SQL Server para fecha y hora con la zona horaria

Resumen: en este tutorial, aprenderás a usar el tipo de datos DATETIMEOFFSET de SQL Server para manipular datos de tipo fecha y hora con la zona horaria.

Introducción al tipo de datos DATETIMEOFFSET

DATETIMEOFFSET te permite manipular cualquier punto único en el tiempo, que es un valor de fecha y hora, junto con un desplazamiento que especifica cuánto difiere esa fecha y hora de UTC.

Sintaxis de DATETIMEOFFSET

La sintaxis de DATETIMEOFFSET es la siguiente:

DATETIMEOFFSET [ (fractional seconds precision) ]

Para declarar una variable DATETIMEOFFSET, utiliza la siguiente sintaxis:

DECLARE @dt DATETIMEOFFSET(7)

Para crear una columna en una tabla cuyo tipo de datos sea DATETIMEOFFSET, utiliza la siguiente estructura:

CREATE TABLE table_name (
    ...,
    column_name DATETIMEOFFSET(7)
    ...
);

El tipo de datos DATETIMEOFFSET tiene un rango desde el 1 de enero del 1 hasta el 31 de diciembre de 9999. La hora va desde las 00:00:00 hasta las 23:59:59.9999999.

Formatos literales

Los formatos literales de DATETIMEOFFSET son los siguientes:

YYYY-MM-DDThh:mm:ss[.nnnnnnn][{+|-}hh:mm]

Por ejemplo:

2020-12-12 11:30:30.12345

Formato ISO:

YYYY-MM-DDThh:mm:ss[.nnnnnnn]Z

Ejemplo ISO:

2020-12-12 19:30:30.12345Z.

Especificar zona horaria

Para un valor de fecha y hora, un desplazamiento de zona horaria especifica el desplazamiento de zona desde UTC. Un desplazamiento de zona horaria se representa como [+|-] hh:mm:

  • hh son dos dígitos que van de 00 a 14, lo que representa el número de horas en el desplazamiento de la zona horaria.
  • mm son dos dígitos que van de 00 a 59, lo que representa la cantidad de minutos adicionales en la compensación de la zona horaria.
  • +(más) o -(menos) especifica si el desplazamiento de la zona horaria se suma o se resta de la hora UTC para devolver la hora local.

El rango válido de un desplazamiento de zona horaria es de -14:00 a +14:00

Ejemplos de DATETIMEOFFSET

Primero, crea una tabla llamada messages, que tiene una columna DATETIMEOFFSET:

CREATE TABLE messages(
    id         INT PRIMARY KEY IDENTITY,
    message    VARCHAR(255) NOT NULL,
    created_at DATETIMEOFFSET NOT NULL
);

En segundo lugar, inserta una nueva fila con un valor DATETIMEOFFSET en la tabla de messages:

INSERT INTO messages(message,created_at)
VALUES('DATETIMEOFFSET demo',
        CAST('2019-02-28 01:45:00.0000000 -08:00' AS DATETIMEOFFSET));

Tercero, consulta los datos de la tabla de mensajes y use AT TIME ZONE para convertir el valor DATETIMEOFFSET almacenado a la zona horaria 'SE Asia Standard Time'.

SELECT
    id,
    message,
    created_at
        AS 'Pacific Standard Time'
    created_at AT TIME ZONE 'SE Asia Standard Time'
        AS 'SE Asia Standard Time',
FROM
    messages;

Resultado:

id message Pacific Standard Time SE Asia Standard Time
1 DATETIMEOFFSET demo 2019-02-28 01:45:00.0000000 -08:00 2019-02-28 16:45:00.0000000 +07:00

En este tutorial, has aprendido a usar el tipo de datos DATETIMEOFFSET para manipular el valor DATETIMEOFFSET.

 

Compartir artículo:

Más artículos geniales

Tipo de datos Decimal y Numeric de SQL Server

Tipo de datos Decimal y Numeric de SQL Server

Resumen: en este tutorial, aprenderás sobre el tipo de datos DECIMAL de SQL Server y cómo usarlo para almacenar valores numéricos exactos.

Ver artículo completo
Expresión CASE de SQL Server

Expresión CASE de SQL Server

Resumen: en este tutorial, aprenderás a usar la expresión CASE de SQL Server para agregar lógica if-else a consultas SQL.

Ver artículo completo
¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

¿Cómo obtener el valor máximo en SQL Server con la función MAX()?

En este tutorial, aprenderás a usar la función MAX() de SQL Server para encontrar el valor máximo en un grupo de resultados.

Ver artículo completo

Manténgase actualizado

Obtenga excelente contenido en su bandeja de entrada todas las semanas.
Solo contenido excelente, no compartimos su correo electrónico con terceros.
Subir al inicio de la pantalla