Tipos de datos datetime e intervalo en SQL92: descripción y uso

Los tipos de datos 'datetime' e intervalos son tipos de datos basados en el tiempo. Estos tipos son útiles para registrar cuándo se creó o modificó una entrada de una base de datos, para registrar cuándo ocurrió un evento o para determinar cuánto tiempo ha transcurrido desde que se creó otro valor de 'datetime'. Aquí, explicaré las descripciones de estos tipos de seguimiento de tiempo según el estándar SQL92.

Índice de Contenido
  1. Tipos de datos SQL
  2. Datetimes
    1. DATE
    2. TIME
    3. TIME WITH TIME ZONE
    4. TIMESTAMP
    5. TIMESTAMP WITH TIME ZONE
  3. Intervalos
    1. INTERVAL
  4. Operadores
  5. Tipos de resultado de operaciones
  6. Tipos de datos
  7. ¿Tienes una pregunta sobre SQL?

Tipos de datos SQL

Para aprender más sobre los tipos de datos SQL, lee "Conceptos básicos de SQL: Tipos de datos de cadena", que cubre el uso general de los tipos de datos y describe el uso de los diferentes tipos de datos de cadena, y "Conceptos básicos de SQL: Tipos de datos numéricos", que detalla el uso de los tipos de datos numéricos.

Datetimes

Los tipos de datos que tienen valores que representan tiempos o fechas se denominan datetimes. Cada tipo de datos 'datetime' tiene sus propios medios para determinar la longitud del valor y para saber qué información se almacena, como el día, mes, minutos, segundos, fracción de segundo, etc.

Las implementaciones reales de 'datetime' varían en longitud y formato desde el estándar definido. Sin embargo, se espera que el tipo definido por cada fabricante cumpla internamente con las reglas establecidas a continuación. Por ejemplo, una implementación de marca de tiempo ('timestamp') puede no tener delimitadores, lo que cambia tanto la longitud como el formato de los detalles de la especificación, que sí contienen delimitadores y, en algunos casos, espacios. Los tipos de datos 'datetime' incluyen DATE, TIME y TIMESTAMP. Veamos cada uno más de cerca, comenzando con DATE.

DATE

Uso: DATE

  • El tipo DATE no permite parámetros como precisión.
  • Un campo DATE consta del año, mes y día.
  • La longitud de un valor DATE es de diez caracteres: AAAA-MM-DD.
  • Solo se puede comparar con otros campos de tipo DATE.
  • Las fechas permitidas cumplen con el calendario gregoriano.

TIME

Uso: TIME (precisión)

Cuál es el mejor motor de base de datos para MySQL
  • Este tipo contiene valores de hora, minuto y segundo: HH:MM:SS.
  • Permite el parámetro opcional de precisión, que dicta la precisión a utilizar para los valores de fracciones de segundo.
  • El tiempo se representa utilizando la Hora Coordinada Universal (UTC), donde 00:00:00 representa la medianoche en Greenwich, y la zona horaria local del servidor se da por sentada.
  • La longitud de un valor TIME es de 8 caracteres, si no hay fracciones de segundo. De lo contrario, la longitud es de 8, más la precisión, más uno para el delimitador: HH:MM:SS.p.
  • Solo se puede comparar con otros datos de tipo TIME.
  • Si no se especifica precisión, esta es 0 de forma predeterminada.

TIME WITH TIME ZONE

Uso: TIME (precisión) WITH TIME ZONE

  • La parte de TIEMPO de este valor se ajusta a los requisitos del tipo de datos TIME.
  • La parte de ZONA HORARIA de este valor representa el desplazamiento de UTC: 00:00:00+HH:MM. Su rango está entre -12:59 y +13:00.
  • La precisión representa fracciones de segundo.
  • La longitud de un valor de tipo TIME WITH TIME ZONE es de 14 caracteres más la precisión, más uno para el delimitador.
  • Solo se puede comparar con otros valores de TIME WITH TIME ZONE.

TIMESTAMP

Uso: TIMESTAMP (precisión)

  • Este tipo contiene valores de año, mes, día, hora, minuto y segundo: AAAA-MM-DD HH:MM:SS.
  • Opcionalmente, puede contener fracciones de segundo, limitadas por la precisión definida.
  • Se ajusta al calendario gregoriano para la parte de la fecha y a UTC para el formato de tiempo. Además, se ajusta a la zona horaria local del servidor de forma predeterminada.
  • La longitud de un valor TIMESTAMP es de diecinueve caracteres, más la precisión, más uno para el delimitador de la precisión: AAAA-MM-DD HH:MM:SS.p.
  • Muchos sistemas se desvían de esta longitud definida, utilizando un TIMESTAMP en estilo UNIX en su lugar: AAAAMMDDHHMMSS.
  • Si no se define precisión, se utiliza un valor de 6 de forma predeterminada; sin embargo, muchos fabricantes de bases de datos utilizan 0 de forma predeterminada, por lo que debes consultar tu documentación.
  • Solo se puede comparar con otros valores TIMESTAMP.

TIMESTAMP WITH TIME ZONE

Uso: TIMESTAMP (precisión) WITH TIME ZONE

  • La parte de marca de tiempo de este tipo cumple con las reglas de TIMESTAMP descritas anteriormente.
  • La precisión representa fracciones de segundo.
  • La parte de la zona horaria se maneja de la misma manera que en TIME WITH TIME ZONE, donde la zona horaria coincide con UTC y se encuentra en el rango -12:59 a +13:00.
  • La longitud total es de 25 caracteres más la precisión, más uno para el delimitador de la precisión: AAAA-MM-DD HH:MM:SS.p.
  • Solo se puede comparar con otros valores TIMESTAMP WITH TIME ZONE.

Intervalos

Los intervalos se utilizan para representar una medida de tiempo. Por ejemplo, puedes utilizar operadores (explicados a continuación) para averiguar y almacenar el número de días entre dos fechas.

Los fabricantes varían mucho en el manejo de los intervalos, algunos ofrecen diferentes tipos para cada unidad de medida, como años y minutos, y algunas bases de datos no admiten intervalos en absoluto. La definición de intervalos del estándar SQL92 tiene solo un subtipo: INTERVAL.

INTERVAL

Uso: INTERVAL (calificador)

Fundamentos del diseño de bases de datos relacionales: tipos de relaciones y cómo establecerlas
  • Existen dos tipos de intervalos: año-mes, que almacena el año y el mes (AAAA-MM); y día-tiempo (DD HH:MM:SS), que almacena los días, horas, minutos y segundos.
  • El calificador, conocido en algunas bases de datos como precisión de liderazgo de intervalo, dicta si el intervalo es de año-mes o de día-tiempo. La implementación del valor del calificador varía.
  • Los intervalos pueden ser positivos o negativos.
  • Cuando se comparan con otros intervalos, el resultado toma la mayor precisión, llenando los valores con ceros si es necesario.
  • Todos los componentes de INTERVAL son enteros, excepto los segundos, que pueden contener fracciones de segundo.
  • Solo se pueden comparar intervalos de año-mes con otros intervalos de año-mes. Lo mismo ocurre con los valores de tiempo de día.

Operadores

SQL92 describe varios operadores que se pueden utilizar en los tipos de datos 'datetime' e intervalos. Revisa la Tabla A a continuación para encontrar combinaciones posibles y los tipos de datos en los que resultan estas operaciones.

Tabla A
Tipo de operando Operador 2.° tipo de operando Tipo de resultado
Datetime Datetime Intervalo
Datetime + o - Intervalo Datetime
Intervalo + Datetime Datetime
Intervalo + o - Intervalo Intervalo
Intervalo * o / Numérico Intervalo

Tipos de resultado de operaciones

Las zonas horarias se mantienen al trabajar con datos de 'datetime', aunque algunas bases de datos convertirán una zona horaria a otra para permitir comparaciones. Algunos operadores de palabras clave existen, como OVERLAPS y EXTRACT, para manipular y comparar valores de 'datetime'. Sin embargo, las implementaciones de bases de datos varían mucho en su uso y soporte.

OVERLAPS se puede utilizar con dos conjuntos de datetimes o un datetime e intervalo para determinar en qué intervalo de tiempo se intersectan las fechas. Utiliza EXTRACT para extraer un componente de un tipo de datos 'datetime' o intervalo, como determinar solo el valor del mes en un DATE.

Tipos de datos

Dado que el estándar ha sido diseñado para que los fabricantes basen sus tipos de datos realmente implementados en los presentados aquí, siempre debes consultar la documentación de tu base de datos para conocer límites específicos, parámetros y nombres de tipos de datos.

¿Tienes una pregunta sobre SQL?

Si tienes alguna pregunta sobre SQL que te gustaría ver resuelta, envía un correo electrónico a nuestros editores y tu inquietud podría ser respondida en un artículo futuro sobre SQL.

Potenciando el acceso: Crea una interfaz para SQL Server con estilo

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Gestión de datos, allí encontraras muchos artículos similares a Tipos de datos datetime e intervalo en SQL92: descripción y uso , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.