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

cách chuyển đổi tất cả các cột datetime trong cơ sở dữ liệu sql server 2005 express với dữ liệu sang UTC

Giả sử bạn biết khoảng chênh lệch giữa UTC và múi giờ mà dữ liệu được lưu trữ, điều đó khá đơn giản:

DECLARE @offset INT;
SET @offset = <offset>;
UPDATE table SET col = DATEADD(HOUR, @offset, col);

Xin lưu ý rằng điều đó có thể là tiêu cực hoặc tích cực, tôi không biết bạn thuộc phe nào của Greenwich.

Tất nhiên điều này sẽ phức tạp hơn nếu bạn đang ở trong múi giờ quan sát thời gian tiết kiệm ánh sáng ban ngày; trong trường hợp này, bạn có thể cần một giải pháp mở rộng hơn như sử dụng bảng lịch. Điều này đặc biệt phức tạp nếu dữ liệu của bạn kéo dài trở lại trước khi George Bush thay đổi các quy tắc DST của Mỹ, chẳng hạn. Tôi có một bài viết từ lâu lắm rồi có thể hữu ích ; một loạt bài gần đây hơn ở đây:

Ngoài ra, nếu bất kỳ dữ liệu nào của bạn nằm trong khoảng thời gian từ 12:00 sáng đến 2:00 sáng vào một ngày mùa xuân trở đi / mùa thu trở lại, nơi tôi không bao giờ chắc chắn liệu việc thay đổi nó là đúng vì đó là ngày chuyển đổi hay không thay đổi vì nó trước 2 giờ sáng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hướng dẫn sử dụng SQL Server - Mọi thứ bạn cần để thành thạo Transact-SQL

  2. Khóa gì | tài nguyên bộ đệm truyền thông có nghĩa là?

  3. Cách giảm kích thước của tệp dữ liệu trong SQL Server (T-SQL)

  4. Vô hiệu hoá Tài khoản SA trong SQL Server (Ví dụ T-SQL)

  5. Tìm những từ mà một tập hợp các chữ cái có thể tạo ra?