sql >> Base de Datos >  >> RDS >> Sqlserver

SQL convierte fecha y hora y resta horas

declare @createTime datetime = '2012-10-06 02:29:37.243';

-- original value, default formatting
select @createTime;

-- formatted
select convert(varchar, @createTime, 100);

-- subtract 4 hours, formatted
select convert(varchar, dateadd(hour, -4, @createTime), 100);

La consulta anterior que usa dateadd siempre restará 4 horas. Si su objetivo es convertir una fecha y hora arbitraria de UTC a la hora local, entonces es más complicado porque el desplazamiento que necesita sumar o restar depende de la fecha y hora original. Un solo valor como -4 no siempre funcionará. Aquí hay algunas ideas para tratar el caso general:

Conversión efectiva de fechas entre UTC y hora local (es decir, PST) en SQL 2005