Lớp .NET TimeZoneInfo là tuyệt vời và tôi nghĩ nó sẽ trả lời tất cả các vấn đề của tôi với việc ghi dữ liệu từ nhiều múi giờ trong cơ sở dữ liệu SQL 2005 của tôi.Thời gian truy cậpZoneInfo từ SQL 2005 Server
Để chuyển đổi ngày giờ UTC trong cơ sở dữ liệu sang bất kỳ múi giờ nào khác, tôi chỉ muốn có múi giờ vào lớp TimeZoneInfo bằng TimeZoneInfo.FindSystemTimeZoneById() và sau đó gọi TimeZoneInfo.ConvertTimeFromUtc(). Rực rỡ! Tôi chỉ gọi nó từ SQL .NET CLR!
NHƯNG ... TimeZoneInfo có Thuộc tính bảo vệ máy chủ lưu trữ của MayLeakOnAbort.
Khi tôi sử dụng VS 2008 để tạo một hàm SQL hoặc thủ tục lưu sẵn, tôi thậm chí không thể nhìn thấy hệ thống.TimeZoneInfo lớp nevermind sử dụng nó. Tôi cũng giả định rằng ngay cả khi tôi có thể tham khảo lớp TimeZoneInfo bằng cách nào đó, tôi có thể sẽ nhận được một số ngoại lệ bảo mật nếu tôi cố đăng ký assembly trong SQL Sever 2005.
Trợ giúp! Có cách nào để truy cập vào lớp TimeZoneInfo và tất cả sự giàu có của nó từ SQL Server 2005?
NB: Tôi vừa thêm thông báo này sau câu trả lời đầu tiên:
Chúng tôi có các trang web tại các địa điểm khác nhau trên khắp thế giới. Chúng tôi cần lưu trữ thời gian địa phương và thời gian UTC trong cơ sở dữ liệu chống lại các sự kiện có thể yêu cầu xu hướng ở cấp Trang web. Một xu hướng có thể bao gồm hơn 52.000 điểm dữ liệu trong một năm, do đó, để có hiệu quả, tôi không thể chỉ lưu trữ thời gian trong UTC trong DB và chuyển đổi mọi điểm dữ liệu trên máy khách. Vì vậy, tôi cần khả năng, trong DB để chuyển đổi một giờ địa phương trong bất kỳ múi giờ nào đến và từ thời gian UTC.
Bạn đang thực sự lưu trữ gì trong cơ sở dữ liệu? Bạn có lưu trữ thực tế là dữ liệu này đã được ghi lại vào lúc 3 giờ chiều ở Pháp hay bạn đang lưu trữ thực tế rằng dữ liệu đó đã được ghi lại lúc 2 giờ chiều theo giờ UTC chưa? Nếu đó là cũ, bạn chỉ có thể lưu trữ bù đắp thời gian địa phương trong một cột –
Tôi cần phải ghi lại cả UTC và giờ địa phương. Báo cáo trang web thường sẽ được yêu cầu trong thời gian địa phương, trang web, báo cáo toàn doanh nghiệp sẽ được yêu cầu trong thời gian UTC. Bất kể, tôi vẫn cần khả năng, ở cấp độ cơ sở dữ liệu, để làm việc ra những gì bù đắp địa phương hoặc thời gian IS! Người dùng nhập có thể ở bất kỳ múi giờ nào. – user74207