Eliminar minutos y segundos y luego convertir a la zona horaria UTC.
Tengo una columna con datos de marcas de tiempo como esta
2021-12-09 08:01:00.520
Quiero eliminar los minutos y segundos y luego convertir la fecha a la zona horaria UTC en una sola línea.
He probado este código
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, 0, Time_Stamp), 0) From Table1
Obtengo este resultado
2021-12-09 08:00:00.000
y he probado este código
SELECT DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), Time_Stamp) From Table1
Obtengo este resultado
2021-12-09 16:01:00.520
Lo que esperaba es
2021-12-09 16:00:00.000
¿Cómo combinar la instrucción SELECT en una sola línea de manera sencilla?
davy.ai
Puedes combinar ambas sentencias SELECT en una sola línea utilizando funciones anidadas de esta manera:
Este código primero elimina los minutos y segundos de la marca de tiempo utilizando las funciones
DATEADD
yDATEDIFF
, luego convierte el resultado a una fecha utilizando la funciónCONVERT
. A continuación, convierte esta fecha al tipo de dato datetimeoffset y la convierte a la zona horaria UTC utilizando la cláusulaAT TIME ZONE
.Esto te proporcionará la salida deseada, que es la fecha con la hora establecida en 00:00:00 en la zona horaria UTC.