Tecnología

Inicio

Cómo Agrupar por fecha sin segundos en T-SQL

Cómo Agrupar por fecha sin segundos en T-SQL


En consultas Transact-SQL, a menudo es necesario para llevar a cabo las funciones de agregado, tales como la agrupación resultados por fecha. SQL ofrece el tipo de datos "Fecha" para almacenar datos como las fechas y el tipo de datos "Fecha y hora" para almacenar datos en un formato de fecha y hora, con la fecha y la hora en horas, minutos y segundos. Puede convertir los datos de fecha y hora "" para una fecha con formato ISO (AAAAMMDD) durante la agregación para eliminar la porción de tiempo. También puede dividir los datos de "fecha y hora" en partes individuales usando la función "DATEPART" y el grupo de las partes de la fecha y hora sin los segundos.

Instrucciones

Conversión

1 Iniciar la aplicación Microsoft SQL Server Management Studio y conectarse al motor de base de datos SQL Server.

2 Abra una ventana de editor de consultas.

3 Dar formato a la consulta para convertir el disco "fecha y hora" para una cadena en formato de fecha estándar ISO con ninguna porción de tiempo (aaaammdd). "AAAA" es el año, "mm" es el mes y "dd" es la fecha. El "112" en la función "Convertir" especifica el formato ISO.

CONVERT (CHAR (8), date_field, 112) convierte la date_field "fecha y hora" para una cadena con formato ISO de ocho caracteres.

CAST (CONVERT (CHAR (8), date_field, 112) AS DATETIME) convierte la date_field "fecha y hora" en una fecha con formato ISO sin el tiempo.

Para usarlo en el GROUP BY función, es necesario formatear la consulta como:

date_field SELECT

FROM tabla

DONDE condiciones

GRUPO DE REPARTO (CONVERT (CHAR (8), date_field, 112) AS DATETIME)

DATEPART

4 Iniciar la aplicación MS SQL Server Management Studio y conectarse al motor de base de datos SQL Server.

5 Abra una ventana de editor de consultas.

6 Dar formato a la consulta como se muestra, utilizando la función "DATEPART" para dividir el campo de fecha en sus partes constituyentes. A continuación, utilizar cada parte en el "GROUP BY" función, eliminando los segundos para realizar una "GROUP BY" sin segundos solamente, donde "aaaa" es el año, "mm" es el mes, "dd" es el día, "hh" es la hora y "n" es el minuto.

SELECCIONAR

DATEPART (aaaa, date_field),

DATEPART (mm, date_field),

DATEPART(dd, date_field),

DATEPART (hh, date_field),

DATEPART (n, date_field)

FROM tabla

AGRUPAR POR

DATEPART (aaaa, date_field),

DATEPART(mm, date_field),

DATEPART (dd, date_field),

DATEPART (hh, date_field),

DATEPART (n, date_field)