Tôi có một ứng dụng web mà tôi đang viết (C#, MSSQL) và tôi cần lưu dấu thời gian khi một bản ghi được lưu trữ trong hệ thống. Thông thường, tôi sẽ chỉ làm điều này với SQL và hàm DATETIME. Tuy nhiên, máy chủ được đặt ở múi giờ khác với công ty của chúng tôi nằm ... VÀ chúng tôi có thể thay đổi sang máy chủ khác theo múi giờ hoàn toàn khác. Công ty lưu trữ sẽ không thay đổi thời gian của máy chủ để khớp với múi giờ địa phương của chúng tôi. (Không phải tôi đổ lỗi cho họ, nhưng đó là một điều tôi đã thử.)Cách xử lý thời gian lưu trữ trong SQL
Vì vậy, câu hỏi của tôi là, cách tốt nhất để lưu trữ ngày/giờ của bản ghi cập nhật là gì và cách tốt nhất để trình bày ngày/giờ trở lại người dùng theo múi giờ địa phương của chúng tôi?
Tôi muốn cách lộn xộn nhất để thực hiện việc này, do đó, kết hợp C# và SQL sẽ ổn khi miễn là giải pháp dễ thực hiện. (Phong cách bình thường của tôi là làm nhiều việc hơn trong các thủ tục được lưu trữ và ít hơn trong C#, nếu điều đó quan trọng.)
Bạn có thể chỉ cho tôi một số mã mẫu không? Cảm ơn!
Chức năng này sẽ thất bại khi thay đổi thời gian bù giờ do thời gian tiết kiệm ánh sáng ban ngày. –
@ [Dave Markle]: nó được cho là sẽ thay đổi khi thời gian tiết kiệm ánh sáng ban ngày thay đổi! –
Ý của anh ấy là nếu bạn nhìn vào thông tin từ tuần trước, trước ngày thay đổi, bạn sẽ thấy nó với giá trị ngày hôm nay không bù đắp từ tuần trước. Chức năng của bạn chỉ hoạt động nếu bạn muốn xem giờ địa phương dựa trên giá trị bù giờ ngày hôm nay. Hàm .Net DateTime.ToLocalTime không hoạt động theo cách này. Nó sẽ cho bạn biết thời gian địa phương được dựa trên khoản chênh lệch vào ngày đó. –