28% de descuento del curso en SQL Server

Estrada Web Group Estrada Web Group
Tipo de datos DATETIME
Estrada Web Group
Estrada Web Group
Estrada Web Group Estrada Web Group
Calificar:
09 septiembre SQL

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

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:

Cargando...
Descarga el código fuente

Obten el código del sistema de gestión de proyectos.

Shape