2011-01-17 14 views
8

Me gustaría convertir getdate() en SQL Server a hora EST.Convertir getdate() en EST

+1

¿Qué versión de SQL Server? – gbn

+0

¿Sería más correcto decir que está buscando hora del este ?: I.E. ¿Qué hay en el reloj en la costa este donde la gente observa el horario de verano? – Empiricist

Respuesta

8

¿Ha considerado GETUTCDATE() y realizando el desplazamiento desde allí? Si se refiere a EST como en tiempo estándar, entonces eso es UTC-5, por lo

select dateadd(hour,-5,GETUTCDATE()) 
+4

INCORRECTO, esto no explica el horario de ahorro de luz diurna. – AndroidDebaser

+3

@AndroidDebaser No necesita tener en cuenta el horario de ahorro de luz diurna. EST siempre será UTC-5. Los lugares en los que el tiempo de ahorro de luz del día del observador cambiará a EDT y el OP solicitarán específicamente EST. Entonces esta respuesta es correcta. – solartic

3

También puede intentar

select SWITCHOFFSET (SYSDATETIMEOFFSET(), '-05:00') 
+1

+1 'SwitchOffset' – RichardTheKiwi

+2

Esto no funciona para el horario de verano, por lo tanto, es incorrecto solo la mitad de la temporada del año. – AndroidDebaser

+0

Estoy totalmente de acuerdo con http://stackoverflow.com/users/832388/androiddebaser –

0

GetDate() es la hora del sistema desde el propio servidor.

Tome la diferencia horaria de GetDate() ahora y la hora en que está ahora en EST use este código donde 1 es esa diferencia (en este caso, el servidor se encuentra en zona horaria central) (Esto también supone que su servidor es la contabilidad de DST)

SELECT  DATEADD(hour, 1, GETDATE()) AS EST 
1

EST es GMT-5 horas, mientras que EDT es GMT-4 horas.

Para obtener EST:

select dateadd(hour,-5,GETUTCDATE()) 

Para obtener EDT:

`select dateadd(hour,-4,GETUTCDATE())` 
0

usando GETDATE():

GMT:

fecha se mostrará:

SELECT GETDATE() 

image1

EST:

USO GETDATE() PARA LA CONVERSIÓN AHORA:

SELECT DATEADD(HOUR, -4, CONVERT(varchar(20),GETDATE(),120)) 

image2

Cuestiones relacionadas