Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Lưu trữ DateTime (UTC) so với lưu trữ DateTimeOffset

Có một sự khác biệt rất lớn, đó là bạn không thể sử dụng UTC một mình.

  • Nếu bạn gặp trường hợp như thế này

    • Một máy chủ một số khách hàng (tất cả về mặt địa lý trong các múi giờ khác nhau )
    • Khách hàng tạo một số dữ liệu với thông tin ngày giờ
    • Khách hàng lưu trữ tất cả trên máy chủ trung tâm
  • Sau đó:

    • datetimeoffset lưu trữ Giờ địa phương của khách hàng và CŨNG được bù đắp đến giờ UTC
    • tất cả khách hàng đều biết giờ UTC của tất cả dữ liệu và cả giờ địa phương tại nơi thông tin bắt nguồn
  • Nhưng:

    • Ngày giờ UTC chỉ lưu trữ ngày giờ UTC , vì vậy bạn không có thông tin về giờ địa phương ở vị trí khách hàng nơi bắt nguồn dữ liệu
    • Các khách hàng khác không biết giờ địa phương của địa điểm, nơi lấy thông tin ngày giờ
    • Các ứng dụng khách khác chỉ có thể tính giờ địa phương của họ từ cơ sở dữ liệu (sử dụng giờ UTC) chứ không phải giờ địa phương của ứng dụng khách, nơi bắt nguồn dữ liệu

Ví dụ đơn giản là hệ thống đặt vé máy bay ... Vé máy bay phải có 2 thời điểm:- thời gian "cất cánh" (theo múi giờ của thành phố "Từ") - thời gian "hạ cánh" (theo múi giờ của thành phố "Điểm đến")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối Java với SQL express

  2. SQL giữa không bao gồm

  3. Cách sao chép một hàng từ một bảng SQL Server này sang một bảng khác

  4. Cách tạo trình kích hoạt sẽ lưu dữ liệu đã xóa (nhiều bản ghi) vào Bảng sản xuất

  5. Làm thế nào để xây dựng lại chỉ mục trong một cột bảng cụ thể?