DataSunrise Logra el Estado de Competencia en AWS DevOps en AWS DevSecOps y Monitoreo, Registro, Rendimiento

Formatos de Fecha y Hora de SQL Server: Una Guía Integral

Formatos de Fecha y Hora de SQL Server: Una Guía Integral

Ejemplos de formateo de fecha y hora en SQL Server
Ejemplos de formateo de fecha y hora en SQL Server, que abarcan estilos de conversión y manejo de zonas horarias.

Introducción

Trabajar con valores de fecha y hora es una parte rutinaria del desarrollo de bases de datos. Ya sea que esté filtrando filas, creando informes o presentando marcas de tiempo, un formateo consistente ayuda a garantizar la claridad. Este artículo explica cómo formatear y manipular fechas en SQL Server utilizando herramientas y funciones integradas.

Entender cómo utilizar las funciones de fecha y hora de SQL Server mejora la precisión de los informes, asegura un formateo regional correcto y simplifica la lógica de aplicaciones posteriores. En las siguientes secciones, exploraremos los tipos de datos principales, las opciones de formateo y las mejores prácticas para el manejo de fechas y horas en SQL Server.

Visión General de Cumplimiento de Datos | Marcos Regulatorios

Manejo de Zonas Horarias y Guía Rápida de Códigos de Estilo

Conversión Instantánea con AT TIME ZONE

A partir de SQL Server 2016, AT TIME ZONE simplifica la conversión de marcas de tiempo UTC a hora local (y viceversa) sin necesidad de codificar manualmente los desfases o lidiar con los cambios de horario de verano.

-- Almacenar una vez en UTC, presentarlo localmente
DECLARE @utc DATETIME2 = SYSUTCDATETIME();

SELECT 
  @utc                         AS StoredUTC,
  @utc AT TIME ZONE 'UTC'
       AT TIME ZONE 'Central European Standard Time' AS BerlinTime,
  @utc AT TIME ZONE 'UTC'
       AT TIME ZONE 'Pacific Standard Time'          AS SeattleTime;

Códigos de Estilo CONVERT Más Usados

EstiloEjemplo de SalidaUso Típico
10107/15/2025EE.UU. MM/DD/AAAA
10315/07/2025UE DD/MM/AAAA
10415.07.2025DE DD.MM.AAAA
1202025-07-15 13:25:42ISO 24 horas
1212025-07-15 13:25:42.347ISO precisión ms

Utilice siempre estilos ISO (120/121) para APIs, reserve formatos específicos de región para la capa de presentación y siempre almacene en UTC cuando las filas viajen entre regiones.

¿Qué es SQL Server?

Microsoft SQL Server es una plataforma de bases de datos relacional ampliamente utilizada en entornos empresariales. Soporta cargas de trabajo tanto transaccionales como analíticas, ofreciendo potentes capacidades para gestionar datos estructurados, incluyendo herramientas integradas para el almacenamiento, formateo y operaciones aritméticas con fechas y horas.

Tipos de Datos de Fecha y Hora en SQL Server

SQL Server ofrece varios tipos integrados para almacenar y trabajar con valores de fecha y hora. Algunos son compatibles con versiones anteriores, mientras que otros brindan precisión moderna y soporte para zonas horarias. La elección del tipo correcto depende del nivel de exactitud y la eficiencia de almacenamiento que necesite.

TipoCategoríaCasos de Uso
datetimeLegadoAlmacenamiento general con precisión en milisegundos
smalldatetimeLegadoAlmacenamiento compacto, con precisión a nivel de minuto
dateModernoAlmacena solo la fecha del calendario (sin componente de hora)
timeModernoAlmacena solo la hora, ideal para la programación
datetime2ModernoFecha y hora de alta precisión con un rango más amplio
datetimeoffsetModernoIncluye conciencia de zona horaria

Formato de Salida Predeterminado

Por defecto, una consulta como SELECT GETDATE(); devuelve un resultado en el formato 'AAAA-MM-DD HH:MI:SS.mmm'. Por ejemplo:

2024-07-15 13:25:42.347

Para personalizar el formato, utilice las funciones CONVERT() o FORMAT() con códigos de estilo.

Formateo de Fechas en SQL Server

Transformar valores de fecha y hora en cadenas legibles es esencial para informes o salidas en la interfaz de usuario. La función CONVERT() acepta códigos de estilo para diversos formatos específicos de la región.

DECLARE @date DATETIME = GETDATE();
SELECT 
  CONVERT(VARCHAR, @date, 101) AS Formato_EEUU,       -- MM/DD/AAAA
  CONVERT(VARCHAR, @date, 103) AS Formato_UK,         -- DD/MM/AAAA
  CONVERT(VARCHAR, @date, 120) AS Formato_ISO;        -- AAAA-MM-DD HH:MI:SS

Trabajando con Cadenas y Fechas

Cuando la entrada se recibe como una cadena, puede convertirla utilizando las funciones CONVERT() o CAST(). Esto ayuda en los procesos de integración y en SQL dinámico.

DECLARE @str VARCHAR(20) = '2024-07-12 14:30:00';
SELECT CONVERT(DATETIME, @str) AS FechaConvertida;

Siempre que la precisión sea importante, utilice datetime2 o datetimeoffset para un rango ampliado y características de zona horaria.

Aritmética de Fechas

La suma o resta de intervalos de tiempo se puede manejar utilizando DATEADD(). Esto facilita el cálculo de fechas de expiración, tiempos de vencimiento o periodos de informe.

DECLARE @start DATETIME = '2024-07-12';
SELECT
  DATEADD(DAY, 5, @start) AS MasCincoDias,
  DATEADD(MONTH, 1, @start) AS MesSiguiente;

Extrayendo Partes de la Fecha

¿Necesita una parte específica de una fecha y hora? SQL Server ofrece funciones directas para extraer el año, mes, día de la semana y más.

SELECT 
  YEAR(GETDATE()) AS Año,
  MONTH(GETDATE()) AS Mes,
  DAY(GETDATE()) AS Día,
  DATEPART(WEEKDAY, GETDATE()) AS DíaSemana;

Mejores Prácticas para Fechas y Horas en SQL Server

  1. Utilice el tipo de fecha y hora más pequeño que satisfaga sus necesidades. Por ejemplo, utilice date si la hora es irrelevante.
  2. Opte por cadenas con formato ISO al importar o exportar para evitar ambigüedades.
  3. Consulte los códigos de estilo de Microsoft oficiales para garantizar la consistencia del formateo.
  4. Tenga en cuenta la configuración regional e idioma del servidor; pueden alterar el análisis de entrada y el orden día-mes.

Manejo de Zonas Horarias

La conciencia de las zonas horarias es fundamental para aplicaciones globales. El datetimeoffset de SQL Server ayuda a garantizar la consistencia al almacenar en UTC y convertir a zonas locales.

DECLARE @utc DATETIMEOFFSET = '2024-07-12 12:00:00 +00:00';
DECLARE @cet DATETIMEOFFSET = '2024-07-12 14:00:00 +02:00';
SELECT DATEDIFF(HOUR, @utc, @cet) AS DiferenciaHoras;

Resumen y Conclusión

Gestionar y formatear valores de fecha y hora en SQL Server no tiene que ser complejo. Entendiendo los tipos de datos adecuados y aplicando funciones de conversión de manera estratégica, puede garantizar que sus aplicaciones presenten la información basada en tiempo de forma clara y coherente.

Tanto si está creando informes, analizando cadenas o implementando lógica de negocio sensible al tiempo, dominar la gestión de fechas y horas en SQL Server le brinda un control preciso sobre los datos temporales. Utilice funciones integradas, siga los estándares de formateo y aproveche el soporte para zonas horarias para reducir errores y mejorar la confianza del usuario.

Siguiente

Soluciones en la Nube vs SaaS

Soluciones en la Nube vs SaaS

Más información

¿Necesita la ayuda de nuestro equipo de soporte?

Nuestros expertos estarán encantados de responder a sus preguntas.

Información general:
[email protected]
Servicio al Cliente y Soporte Técnico:
support.datasunrise.com
Consultas sobre Asociaciones y Alianzas:
[email protected]