2011-01-17 7 views
8

Ich möchte getdate() in SQL Server zu EST-Zeit konvertieren.Convert getdate() zu EST

+1

Welche Version von SQL Server? – gbn

+0

Wäre es richtiger zu sagen, dass Sie nach der östlichen Zeit suchen: I.E. Was passiert an der Ostküste, wo Menschen die Sommerzeit beobachten? – Empiricist

Antwort

8

Haben Sie GETUTCDATE() in Betracht gezogen und den Offset von dort ausgeführt? Wenn Sie EST als in Standardzeit bedeutet, dann ist die UTC-5, so

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

FALSCH, dies gilt nicht für die Zeit, die das Licht spart. – AndroidDebaser

+3

@AndroidDebaser Sie müssen die Tageslichtzeit nicht berücksichtigen. EST wird immer UTC-5 sein. Orte, an denen die Lichtschutzzeit des Beobachters eintritt, werden auf EDT umgestellt, und das OP hat speziell nach EST gefragt. Also diese Antwort ist richtig. – solartic

3

können Sie auch

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

+1 'SwitchOffset' – RichardTheKiwi

+2

Dies funktioniert nicht für die Sommerzeit, daher ist es falsch, nur die Hälfte der Zeit des Jahres. – AndroidDebaser

+0

Ich stimme völlig mit http://StackOverflow.com/users/832388/androiddebaser überein –

0

GetDate() ist die Systemzeit vom Server selbst versuchen.

Nehmen Sie den Stundenunterschied von GetDate() jetzt und die Zeit, die es jetzt in EST ist, verwenden Sie diesen Code, wobei 1 der genannte Unterschied ist (in diesem Fall befindet sich der Server in der zentralen Zeitzone) (Dies nimmt auch Ihren Server an ist für DST)

1

EST ist GMT-5 Stunden, während EDT GMT-4 Stunden ist.

EST Um:

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

EDT Um:

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

GETDATE mit():

GMT:

DATUM ANGEZEIGT WERDEN:

SELECT GETDATE() 

image1

EST:

USE GETDATE() Umrechnungs NOW:

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

image2