¿Cómo puedo extraer la hora de inicio y fin de una fecha/hora en SQL Server?
Me gustaría obtener la hora de inicio y la hora de finalización de las filas de datos.
La hora de inicio es el “ActivityStart” y la hora de finalización es el “ActivityEnd” en la tabla.
Mi tabla se ve así:
EventTime | Clase | Actividad |
---|---|---|
13/12/2021 09:02 | ACTIVITYSTART | Stock Audit |
13/12/2021 12:19 | ACTIVITYEND | Stock Audit |
13/12/2021 12:19 | ACTIVITYSTART | Inventory |
13/12/2021 12:38 | LOGOUT | Inventory |
13/12/2021 12:38 | ACTIVITYEND | Inventory |
13/12/2021 12:47 | LOGIN | None |
13/12/2021 12:47 | ACTIVITYSTART | Marshalling |
13/12/2021 12:47 | ACTIVITYEND | Marshalling |
13/12/2021 13:40 | ACTIVITYSTART | Stock Audit |
13/12/2021 15:06 | ACTIVITYEND | Stock Audit |
Se espera que tenga una tabla que se vea así:
Fecha | Nombre de Actividad | Hora de Inicio | Hora de Finalización | Minutos transcurridos |
---|---|---|---|---|
13/12/2021 | Stock Audit | 09:02 | 12:19 | —– |
13/12/2021 | Inventory | 12:19 | 12:38 | —– |
13/12/2021 | Marshalling | 12:47 | 12:47 | —– |
13/12/2021 | Stock Audit | 13:40 | 15:06 | —– |
davy.ai
Para obtener la hora de inicio y fin de las filas de datos, podemos usar una consulta SQL que seleccione las columnas necesarias de la tabla, agrupe los datos por el nombre de la actividad y calcule la hora de inicio y fin en función de la columna Event_Time y el tipo de actividad (ACTIVITY_START y ACTIVITY_END). También podemos calcular el tiempo transcurrido entre la hora de inicio y fin usando la función DATEDIFF.
La consulta SQL se vería algo así:
Esta consulta nos dará una tabla con las columnas deseadas y el tiempo transcurrido en minutos entre la hora de inicio y fin para cada actividad. Podemos ajustar los nombres de las columnas y el formato según sea necesario.