2011-01-17 37 views
8

Tôi muốn chuyển đổi getdate() trong SQL Server thành EST.Chuyển đổi getdate() thành EST

+1

Phiên bản SQL Server nào? – gbn

+0

Sẽ chính xác hơn khi nói rằng bạn đang tìm kiếm thời gian phía đông: I.E. những gì là trên đồng hồ trên bờ biển phía đông, nơi mọi người quan sát thời gian tiết kiệm ánh sáng ban ngày? – Empiricist

Trả lời

8

Bạn đã cân nhắc GETUTCDATE() và thực hiện bù đắp từ đó? Nếu bạn có ý nghĩa EST như trong thời gian tiêu chuẩn, sau đó đó là UTC-5, do

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

WRONG, đây không phải là thời gian tiết kiệm ánh sáng ban ngày. – AndroidDebaser

+3

@AndroidDebaser Bạn không cần tính đến thời gian tiết kiệm ánh sáng ban ngày. EST sẽ luôn là UTC-5. Những nơi quan sát thời gian tiết kiệm ánh sáng ban ngày sẽ chuyển sang EDT và OP yêu cầu EST cụ thể. Vì vậy, câu trả lời này là chính xác. – solartic

3

Bạn cũng có thể thử

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

+1 'SwitchOffset' – RichardTheKiwi

+2

Điều này không hiệu quả đối với việc tiết kiệm ánh sáng ban ngày, do đó nó chỉ sai một nửa thời gian trong năm. – AndroidDebaser

+0

Tôi hoàn toàn đồng ý với http://stackoverflow.com/users/832388/androiddebaser –

0

getdate() là thời gian hệ thống từ máy chủ riêng của mình.

Lấy sự khác biệt giờ của GetDate() và giờ hiện tại EST sử dụng mã này khi 1 được cho là khác biệt (trong trường hợp này máy chủ ở múi giờ Trung tâm) (Điều này cũng giả định máy chủ của bạn đang tính cho DST)

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

EST là GMT-5 giờ trong khi EDT là GMT-4 giờ.

Để có được EST:

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

Để có được EDT:

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

sử dụng GETDATE():

giờ:

NGÀY sẽ được hiển thị:

SELECT GETDATE() 

image1

EST:

SỬ DỤNG GETDATE() CHO CHUYỂN ĐỔI DOANH NGHIỆP:

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

image2

Các vấn đề liên quan